程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5920|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 P) g8 `& e" c6 q% b9 I#include <linux/init.h>
3 o7 z6 Z  t, ], b2 C" r5 Z" n#include <linux/module.h>& K% K3 u8 u- ~- E- L; @- v
#include <linux/kernel.h>( s( N& H3 V; x4 u/ N
#include <linux/types.h>
; X0 W0 H/ o# Z1 m: N#include <linux/gpio.h>$ @; s6 c& t4 i) N8 f* U5 m7 K
#include <linux/leds.h>' F1 p6 ]7 s  G; _" g
#include <linux/platform_device.h>3 a' E5 w7 B( ]2 z

# w! M5 ?3 e9 ~+ j* b$ Z#include <asm/mach-types.h>4 f- O/ P8 y6 D6 i2 {
#include <asm/mach/arch.h>
/ i3 V1 b' P/ ]$ N  ?. N#include <mach/da8xx.h>
' Q/ n* Z. M; Q" |6 ]4 y) b  N#include <mach/mux.h>
/ j# _% a  X: f9 k5 ]! d( a9 d' \* h4 D  J- N! i; U4 {1 Y) H- a) f
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 J# Q' X, `( e3 U
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ u8 @! m5 E- o4 `
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 v1 b' I; w2 }2 ]1 b#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! {- J2 u/ T. H6 f( D
# C( A0 z! h2 o) B/* assign the tl som board LED-GPIOs*/
2 `3 q# D& u+ b, m* fstatic const short da850_evm_tl_user_led_pins[] = {
4 _3 s2 z/ y5 B, T- ~3 n; H        /* These pins are definition at <mach/mux.h> file */+ R/ n3 d# t+ Z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- ]) J+ |3 F; q* z) F- B7 L- x% t        -1
7 [  y: F( @% ?& U  M, [5 F. c/ J4 W};
  L. _0 ]- H+ G, R/ w6 C0 w6 Y' o* u
static struct gpio_led da850_evm_tl_leds[] = {' d- `/ b& h8 H$ c. S/ U9 C
        {
' D) H* S$ E. @+ H                .active_low = 0,
2 `/ `, E. d2 \0 t                .gpio = DA850_USER_LED0,% p# L5 u9 `2 S: J) O4 J: S. r
                .name = "user_led0",+ H9 `4 B4 ]! i; w: u
                .default_trigger = "default-on",7 n, p' m3 c9 Z
        },2 C8 R9 Q  @5 M& P
        {7 K) C# \+ r1 R" ~& {. g
                .active_low = 0,4 K1 ]. `! e$ W# Z* e3 @
                .gpio = DA850_USER_LED1,
% |4 P' @8 o: ^                .name = "user_led1",! K+ B$ Z, B/ d, T6 I2 j* c9 b
                .default_trigger = "default-on",* L! t% r/ M8 ~
        },# [( T3 p6 k9 N+ b, I
        {9 u  g  B/ O- L% J7 c: B
                .active_low = 0,$ V5 I, {+ {- G7 v0 z9 z
                .gpio = DA850_USER_LED2,
' \6 ]9 D6 x& _+ F% z                .name = "user_led2",) p3 \& J  `, M% P/ c1 W4 z
                .default_trigger = "default-on",
2 T( ]4 t8 L4 V% N$ T3 m) g        },! Z( h/ x# v$ c
        {
8 U6 u. m4 J& Q+ k: Z7 }                .active_low = 0,2 _8 i# _/ ?% p# b0 X  [
                .gpio = DA850_USER_LED3,$ n" d3 q: U" V  P/ ]
                .name = "user_led3",
# h0 E8 C: z  P- R# F' ^                .default_trigger = "default-on",
7 ]5 S( f% T# a        },  p/ m( N% C) w  T+ e- O7 Y
};
, [( z, n4 Y! ]) V& n1 Z: r
4 b9 P% F3 D# Z0 x( b- i7 O( Ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 [2 L: n0 ^7 }- a/ Q- r
        .leds = da850_evm_tl_leds,
" ?4 `9 i) T) Y7 q  B2 a4 [# O+ K        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 _8 |! b: v5 C0 _' e! G
};# E, P0 [5 k' j. A' Z3 o
/ k3 U  o% t. O1 ?+ w0 h+ E
static void led_dev_release(struct device *dev)
0 ^/ K- P% [/ V5 M{
6 u  q7 N: X6 ~% I5 _- b};
6 ?4 t7 z9 R% j: A
6 w0 P' j3 X/ K' H5 @7 Ostatic struct platform_device da850_evm_tl_leds_device = {
. L' W2 B) r2 K6 J4 ?! _        .name                = "leds-gpio",7 ^% z4 v) `: \4 {& T
        .id                = 1,
4 c0 d' M0 k/ G6 R: F        .dev = {
8 }/ X6 t7 X9 R' k1 P9 H                .platform_data = &da850_evm_tl_leds_pdata,: M$ M6 Y: a" `1 r. z
                .release = led_dev_release,
6 A% R0 J4 W$ H        }
, a5 B: ^" }2 F" C};
6 J# H1 s& R% B, r& c; p0 W2 d! l1 C# R/ ~& J# W6 M! C
static int __init led_platform_init(void)
% ]" f* g$ I* f{
% H% k' w3 r( C3 |3 {& o2 {        int ret;8 C2 R) N: O# H- o) M1 m1 S
#if 0
  N  u$ \, ?6 j" D/ L/ b        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% m4 z  u. b9 q; u        if (ret)
: q. P6 S" e7 _$ C: A                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 K( F9 q& l8 I4 F" B0 W& W6 F                                "%d\n", ret);
3 ^& h3 d  l1 q" V#endif7 {$ y7 H5 `" O, @) H
        ret = platform_device_register(&da850_evm_tl_leds_device);
. L9 |$ |  z7 I' F        if (ret)' d0 t! k1 X$ }: r; m/ Q) A; u$ z5 a
                pr_warning("Could not register som GPIO expander LEDS");/ F# z( p& d# P( g& o
        else
) U& A- C+ S9 Q1 {2 |: g/ W* s                printk(KERN_INFO "LED register sucessful!\n");4 |, ^( p6 v7 j& k* J( o

- U4 W  @; d" l* l# `        return ret;
5 Y9 o+ p% N, x8 F( N}" }( Y, \# O3 |- o

; U5 k) G7 c2 i* tstatic void __exit led_platform_exit(void); b& x# ~" t; v4 Y/ N  N
{$ G1 J& L4 C5 p; S" d4 ?. r
        platform_device_unregister(&da850_evm_tl_leds_device);- o% e: T2 \' \+ Y
: {. {! T! m5 J, E) H
        printk(KERN_INFO "LED unregister!\n");
+ Q6 V$ ~: ^+ J}
. J& y* J. Q6 q$ k& F- p" x1 z# U
* |* R0 |& M2 ^9 smodule_init(led_platform_init);
" b0 l4 ]- w3 i$ i4 G: K% k% Umodule_exit(led_platform_exit);" ?1 H6 `0 H5 x; U) L0 r0 r

/ Z% i' y: ?. k, T5 i# N2 P+ QMODULE_DESCRIPTION("Led platform driver");6 i+ R/ e, o; \0 U$ s
MODULE_AUTHOR("Tronlong");, c7 p# a) T* B" c% `7 b4 h8 x
MODULE_LICENSE("GPL");
) l9 M' |' c( I# `$ r: ^6 |5 q/ F9 i5 R0 w) g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-10-8 13:43 , Processed in 0.037135 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表