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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; N% I- ]# j: }0 P5 ^2 d: F#include <linux/init.h>( U$ z9 G4 s2 h
#include <linux/module.h>6 G% s' j: A* e% ~$ m% B& t) u
#include <linux/kernel.h>9 P! _- W6 P# Z. M
#include <linux/types.h>
* O( |- Z. }, C6 M- \+ a#include <linux/gpio.h>" ^1 M4 o6 H5 k& P! B# X) G% W. }
#include <linux/leds.h>
0 {# p( k, h0 {+ R  p#include <linux/platform_device.h>
8 n7 D( c7 h1 s$ M, }. X  F/ U7 V3 X- A! H* D; P# M. @  Q0 g
#include <asm/mach-types.h>
- L2 O9 `  q9 r( n/ {#include <asm/mach/arch.h>% M6 N; g1 s  c1 {8 l7 B* t, L
#include <mach/da8xx.h>
  @$ c8 l+ z, A8 e! {#include <mach/mux.h>
: z: ]0 F& g# V0 I9 P1 w1 l; T3 Q7 v4 c6 q0 i
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# D/ r" w6 B6 w
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! q7 Y$ M. r( Y4 I- e
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ Z; K1 C! ~- q7 K, ?$ }( H' o- |
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 A- u( L& A3 }

/ l: e4 W! S  ~  r$ U. M' ~6 O/* assign the tl som board LED-GPIOs*/
  l0 @( e7 w7 O, \3 e& N2 t0 ?static const short da850_evm_tl_user_led_pins[] = {- I2 n0 x0 X7 `/ m0 ]- z
        /* These pins are definition at <mach/mux.h> file */) X' i/ e( i% j' J) H- B7 y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 |, G* `4 K2 p9 y# Y' H' n        -1$ L' M+ h* O9 D2 G% w4 B
};
- k  b2 ]" J3 o" W, K
; X4 O9 _. R% C+ ~4 dstatic struct gpio_led da850_evm_tl_leds[] = {
% `. p8 p( W, d: r+ {0 w# w        {6 }8 O1 L1 P' d& s) c  z
                .active_low = 0,
# X+ y% c0 r3 O3 B) D+ \" r: ^                .gpio = DA850_USER_LED0,
7 D2 }/ {9 c, b4 B                .name = "user_led0",
" a6 ?& R4 X$ b: H4 P                .default_trigger = "default-on",( Q! F2 D  P( |  c$ d2 {* F& C) h
        },) v. N  U- v& V" T) Q
        {  u  z; q" o4 K1 n& [! f% U. e! }$ W/ Y
                .active_low = 0,
* p- _$ e. e/ j4 {! h" o( I                .gpio = DA850_USER_LED1,
/ f7 _/ c, @  t* d# O                .name = "user_led1",
5 x8 }5 E) ?4 N1 r                .default_trigger = "default-on",0 M3 ], B7 n, c8 b0 L
        },
5 D. V9 F7 O0 s2 ^, B        {
+ H6 {9 I. S9 t, q% E                .active_low = 0,
. Y! @/ x: S( Z$ K9 ^5 D* f" g5 Y                .gpio = DA850_USER_LED2,4 e2 K. A# d' O& Q8 x
                .name = "user_led2",
2 I( }7 _; j. h% d                .default_trigger = "default-on",2 ?. l2 B% {/ g: u! F
        },
# m6 P! j% ^; C' l' s9 ^5 u) g- w        {
5 r3 O# O" o  d6 Z9 i                .active_low = 0,( x# Q8 W& C0 K2 q
                .gpio = DA850_USER_LED3,7 d3 X3 U' g3 j, t
                .name = "user_led3",! u  P9 P! {; S0 ~7 j
                .default_trigger = "default-on",
- S8 S! d+ X4 N0 S& s4 `        },5 d. o! q+ J# p& Q! s4 n% \0 Y
};! _) @: a$ O* \- t5 ?1 j. H! v
/ r, n! ?/ y/ m0 L5 S
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ p8 ?" N4 Z! L% Y& f& I
        .leds = da850_evm_tl_leds,
! _0 W; m8 A8 m4 v6 y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, n5 K- u- H! ?$ N
};( }  O# a0 ]: [, \

# z3 r6 t5 N8 N1 v# B: Gstatic void led_dev_release(struct device *dev)
- r5 J8 }$ f' P2 W0 h$ C{; c# E4 D! w5 \- r8 {
};
( B9 A7 ^. `$ }( k7 y
2 t' p: r1 M* T5 w. G' e( Fstatic struct platform_device da850_evm_tl_leds_device = {
; B# \: V8 H+ Z3 O8 K% J        .name                = "leds-gpio",
3 t2 {+ l( j' D2 D4 A        .id                = 1,
) A* b6 W  ?* |) d        .dev = {5 I' a% C, U) R+ v& W
                .platform_data = &da850_evm_tl_leds_pdata,
) S4 y4 D, }% U1 K8 k                .release = led_dev_release,8 ~; E, h( Y0 t, N$ ~6 \/ V" [" {: L
        }. @$ |  Z+ ^! n# W% _, t$ B' n
};" O2 A; Q# P& X8 w4 W( [

' o6 C8 G" r3 B9 j) [static int __init led_platform_init(void)
9 Q& A! S% ^6 e( n2 h{8 s; e$ D. Y$ a9 q& \9 m+ l* G
        int ret;4 n) c, |& L! C; X) i
#if 0
/ @% n5 Z! ]  h, F2 M$ u% w) V        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# f; u# J! y/ F* o
        if (ret)
9 F5 A3 B- V8 Q- B: R                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! e( t1 N( \+ v' l, ^. @
                                "%d\n", ret);
3 Q  f# ^; U7 b#endif
* `; [; `6 W5 ]' Q# V$ J3 M        ret = platform_device_register(&da850_evm_tl_leds_device);
: @# e; @0 W0 r  g5 D' O9 N% ]: e3 c        if (ret)
3 ?- v( |+ w# ^) ~                pr_warning("Could not register som GPIO expander LEDS");
3 U4 f0 B6 n% c        else
! y% y. e, z" H& _5 U                printk(KERN_INFO "LED register sucessful!\n");/ \4 ?6 J1 O; f7 J

: o! {. ?. h+ A$ c" t- H        return ret;
0 f* x6 S% u  Q}7 l+ X' K% c9 O  o3 S' [9 M. d

$ F! E/ ]! j  c$ Ystatic void __exit led_platform_exit(void)
9 p- L1 C) D1 M8 y0 S: L8 i{
% ?+ ?# c, w, \) o$ R% T/ ]( i        platform_device_unregister(&da850_evm_tl_leds_device);
7 D4 W3 s' m) H% r! F% {( K2 d9 F1 O8 x' ~4 b8 y% E
        printk(KERN_INFO "LED unregister!\n");
$ r. M- i( k1 E  c( c}# D3 z) t: E5 R) o- t6 [
6 v, }5 r+ U1 \' q, F6 m2 h
module_init(led_platform_init);
+ b9 a* d& O" _8 Hmodule_exit(led_platform_exit);
* w5 M) n( {2 k) i% F( |. j
+ b5 }, _7 Y5 }- UMODULE_DESCRIPTION("Led platform driver");
( s$ K$ `( Y9 {- Z9 V4 @MODULE_AUTHOR("Tronlong");
, A, \0 ^" K! S3 @* D1 i/ U- UMODULE_LICENSE("GPL");
  {3 d9 x' {; `
. z) y' v' h/ z% S* D% z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-13 03:27 , Processed in 0.039805 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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