程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, Z* q  q2 Q& V' B& P. C7 x* V#include <linux/init.h>
8 T) N" x# E2 r0 @- t#include <linux/module.h>
# g$ X4 I! G" G& m' [#include <linux/kernel.h>
6 K& d4 X/ b- R0 l8 v( A#include <linux/types.h>- _, C4 }0 p) i& |# e1 K
#include <linux/gpio.h>
) y" f/ \4 V! @4 }1 \+ o* u#include <linux/leds.h>& M+ [6 |3 {, L2 v9 M3 H0 \
#include <linux/platform_device.h>
, I$ b% w* G8 z  D- ~  C1 N5 Y4 N! f
#include <asm/mach-types.h>
8 W' e: ~# g0 @# u1 i4 O#include <asm/mach/arch.h>% B# Y  ~; p* x3 ]
#include <mach/da8xx.h>" z" l3 {+ E- P0 _( ], l
#include <mach/mux.h>! j1 Y, Y( q& ?, T2 K$ C
( u" s$ U) o7 a( G. J
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  L, b0 U" j' _3 _& m1 N0 ^
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" t( O& J4 t* `$ q8 [" d0 H8 ~#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# }7 Q& H0 g/ z9 O9 B
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  r; B6 ^  v; ^# d" l

8 D/ ^. @6 k' j" F4 n3 B8 v( S8 f/* assign the tl som board LED-GPIOs*/
1 }! G6 S( a' r" Astatic const short da850_evm_tl_user_led_pins[] = {* v( m5 w3 r7 w# D
        /* These pins are definition at <mach/mux.h> file */9 B- y4 y4 t, e+ J. V+ L1 f
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 r  x' H9 F) W9 x
        -1
( x  ], ]& p4 p2 o' k};
1 ?# v. {# J( `  [) n
2 O9 R/ P, B: ]$ e. Sstatic struct gpio_led da850_evm_tl_leds[] = {
5 @' x9 @  `. U- J        {
" N8 ^  _3 Y$ S8 I$ q. Q. s                .active_low = 0,
* N9 v) [- ?& Q1 _' L$ ]                .gpio = DA850_USER_LED0,
3 [* q  Y' k) K                .name = "user_led0",
$ ?5 ^/ \% z3 Q! F                .default_trigger = "default-on",% K: c. |" H0 V. Y  X
        },
- r# y/ c+ R4 q, o2 j        {" g! `, a1 A  M; }) A; P
                .active_low = 0,
8 [+ ^7 ]/ o% K) n                .gpio = DA850_USER_LED1,
, Q) Y" V' z% @$ e" P' Z. h* i* V                .name = "user_led1",
2 v: W1 {, c4 [                .default_trigger = "default-on"," `! {& m  Z! ^& I& e9 N/ C
        },
' `4 @0 `, Z: G" _/ P        {! ~, K/ ^* N- C' q
                .active_low = 0,
$ G+ p! n, B- c: K5 W  x8 m                .gpio = DA850_USER_LED2,
, ]& R* O3 Q1 c7 E# L! w( n, B                .name = "user_led2",
8 Y* t) G6 v& _: A# J  a                .default_trigger = "default-on",
5 `: D! n/ Y: B        },
9 r5 r3 P* W5 b* q        {* }& k  D) |! b9 h+ Y
                .active_low = 0,
/ D/ Y% G5 J: k7 g/ z                .gpio = DA850_USER_LED3,2 C+ f5 J$ i; K9 {: F  V1 i
                .name = "user_led3",
7 {9 U, I5 N6 w/ B# i3 N                .default_trigger = "default-on",
  ^; ~7 W/ a& c. S; [; U  A4 D% B        }," V, G# O' L7 ^+ |% X8 O
};  V; \7 P% x7 C; S7 M9 {' P+ Y
5 {$ f4 L5 Y) g$ S. z" N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) v- m4 }) |. R4 D' N
        .leds = da850_evm_tl_leds,
, J9 I, @/ s$ e- J( _( f# L        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 e8 i4 a6 Q$ o& I# J% S};# L0 ^% l8 ?  c" e" i' N, G
- i+ S+ w  x. C% O) L0 x# \4 b
static void led_dev_release(struct device *dev)
: i) L# p8 B* a: J1 G- b{
8 M1 G4 G6 t7 C0 G, J' U3 U' ?};
' p9 q4 _* R- w) ]& }. m6 Z
+ e$ n1 P. I9 F" xstatic struct platform_device da850_evm_tl_leds_device = {
  z6 a! J" h) `( Y        .name                = "leds-gpio",# K: w4 ~8 g) M2 p2 _. b9 `# z
        .id                = 1,
( B( d7 n8 A8 n& \3 d) ~        .dev = {
* n! B9 t/ s# q- A" N                .platform_data = &da850_evm_tl_leds_pdata,
$ X2 Z/ i8 y5 ]# ~                .release = led_dev_release,7 G( e, A/ Z& m: J7 ]
        }
9 p+ c* i2 n, P};3 \( f2 p# i' H) n

/ C. M% X- K6 b* N1 qstatic int __init led_platform_init(void)0 i) ^- u4 z; q- B: J( c
{' J, f# Z2 W& r
        int ret;0 z  e& M: g$ D+ X( k( x  G( I; A. ]# S1 i
#if 0' I% }- h- u1 j% N
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 l6 e/ [5 ~3 b  N        if (ret)
' X0 S1 J0 |5 w3 i# ^9 m                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 W2 u! _! \& k+ m
                                "%d\n", ret);
' O/ [8 {7 |+ y# n* d#endif% G" D: B8 P! M  R( q
        ret = platform_device_register(&da850_evm_tl_leds_device);
* w$ ?! S, v) V/ r0 H9 u& i4 c        if (ret)
0 l$ @2 C- Q1 F0 @$ r& V                pr_warning("Could not register som GPIO expander LEDS");
1 q0 s" O7 P7 q$ e, w        else1 e0 O( u- M8 s
                printk(KERN_INFO "LED register sucessful!\n");3 x' ?/ ~* d5 x- G+ n

+ B. C( O- e' J  D: C        return ret;
5 _% t' M. R* i/ I- I}
3 U$ w+ f; p: C' u$ Y) b5 r0 v4 l9 ~* @
static void __exit led_platform_exit(void)3 l' K0 |& K9 |  U. `8 _" ]
{8 Z7 v9 |' S  u) ~. D
        platform_device_unregister(&da850_evm_tl_leds_device);. ~& E9 j) I! w/ c) v9 l8 }

9 a6 M9 W5 A) s' @7 w        printk(KERN_INFO "LED unregister!\n");# G* z! g0 C. w, q4 c: b5 s
}
+ d' z& W8 @; q' X6 y
% X8 i& C( f6 Y7 O, R5 f% ^module_init(led_platform_init);- d" r+ G0 J! o6 _) o4 W
module_exit(led_platform_exit);
1 i4 n. ~  |6 X, W  J
% J; ?- `. J' ]1 D+ ~+ LMODULE_DESCRIPTION("Led platform driver");$ f7 Z2 u) M' T& Q6 G
MODULE_AUTHOR("Tronlong");
, N) t- @7 o+ ]/ f, c3 T8 b. jMODULE_LICENSE("GPL");
+ o: E; |+ i4 z2 F* z1 s
1 [' T6 U$ r$ t9 B' \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-3-8 17:34 , Processed in 0.044693 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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