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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 {5 F8 m5 V, R6 J1 K1 p0 `+ \, `#include <linux/init.h>
6 x( ~; A  S' j! v4 c#include <linux/module.h>
& `# y0 u3 |; l! c, V#include <linux/kernel.h>
1 \9 ~: U/ E) b% s0 y#include <linux/types.h>8 ]' r. p+ y& {% \0 d- \) C
#include <linux/gpio.h>7 H% {; V- b8 k
#include <linux/leds.h>" u# _' L  W' {
#include <linux/platform_device.h>
8 l0 p$ ^( F9 I! ?+ e, ?/ Q* |9 e  [/ C& Y
#include <asm/mach-types.h>
/ D( b9 \, ?9 t' {: v% N#include <asm/mach/arch.h>' s- E6 e7 `7 s) \+ A) Z2 |6 o' ~1 |/ A
#include <mach/da8xx.h># K/ t% m, B# L$ Y5 M
#include <mach/mux.h>
! K8 h5 V5 O4 L3 V; d5 B7 W+ p5 `2 D* |
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 r- z7 x6 V  G' L/ w) O6 @$ p
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  [- B& B) F1 u. C& r) q; S/ u- i
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( r1 G" u; M: z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) ~) q$ C* I6 w# X' d

& P6 o1 h( W( m8 v& i/* assign the tl som board LED-GPIOs*/
, B/ Q3 h* K  ^1 C  o+ O3 vstatic const short da850_evm_tl_user_led_pins[] = {. j- C( Z0 r% X; F0 f$ x7 z( P% m
        /* These pins are definition at <mach/mux.h> file */* @" y/ F* m$ s! a. O/ y7 k
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' ]: X% A. Z1 u! h/ t+ y        -10 A5 `7 Y8 q3 X2 {* Z0 k, J& s
};5 `: |* U6 I1 {& R/ F& T4 U

# b' P: ~8 Y! [2 w+ ?& R: N. vstatic struct gpio_led da850_evm_tl_leds[] = {- y) c- f9 m, M3 M, }
        {
  R* w+ `4 m; Z  e; E                .active_low = 0,1 v3 ?1 Y2 W0 W3 _$ |2 ^' k
                .gpio = DA850_USER_LED0,7 l, [- o0 R# E0 Y' f( y* G
                .name = "user_led0",
  ], h+ [- Y# ~8 n5 p                .default_trigger = "default-on",+ ]. t+ d- ], C$ E
        },
- G7 Y* w; M5 l. t4 y  S' S        {
. r% @8 I1 ?1 `! @                .active_low = 0,3 T1 R# O- f  `3 \  z5 Q
                .gpio = DA850_USER_LED1,) Y2 E5 R: ^/ u# P
                .name = "user_led1",+ }& G5 _- D5 T( p  T) H
                .default_trigger = "default-on",
! x* d. f4 o' j3 x4 ]% D# s        },- Q3 z+ D: g/ ?. @9 J
        {
5 ]# k, g) R& O; O: t' n) o( v& F5 z                .active_low = 0,
# f) @) x3 e' k+ _' p3 L. Q                .gpio = DA850_USER_LED2,/ l: `0 ]  b- z% R! V: K
                .name = "user_led2",& O+ H" q( K* v
                .default_trigger = "default-on",
# d2 M- K7 H9 k        },7 c; F1 b( O5 n6 o7 R4 r. i1 d
        {) b- ~/ z; F/ x  O
                .active_low = 0,
2 L* k# B" N1 F3 Q& ?& W                .gpio = DA850_USER_LED3,4 P% E& t3 a$ u, y* r
                .name = "user_led3",/ A; ]8 X* |( C' r
                .default_trigger = "default-on",/ L2 r6 F: |* g
        },
- E0 o6 g  e. d: b};' I' R/ U- r% D/ d
5 A2 E3 L+ R, o; S1 \+ _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, _$ P/ h7 ^  @, v- C% `$ a* X        .leds = da850_evm_tl_leds,. \% R4 {. t0 }6 Z5 A: h
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; g% ?- B2 j2 e- T# E2 U# D
};& p7 e# _# O. O( I

4 y, r; D( K# V1 Qstatic void led_dev_release(struct device *dev)
0 q/ O2 O+ v# B( M1 Z{# Q# T3 ?! K8 X; C* s* o/ ~  _! B  i/ x
};( O# f" T3 b/ o1 D7 s+ \
$ w  D6 }# p* l( T& v* z
static struct platform_device da850_evm_tl_leds_device = {4 g6 g5 f  Q0 X# J3 L
        .name                = "leds-gpio",
0 ?3 i- v. k& H) V        .id                = 1,
4 A# Q( {: U; f- y" i3 D( e& K        .dev = {
( M! J8 N+ `1 F( @& k2 y6 w2 ], D                .platform_data = &da850_evm_tl_leds_pdata,+ Q: m; @8 x6 P" N- v/ Y
                .release = led_dev_release,
* {- R6 {2 t# N4 w        }
6 q; C. e! ^# X- J- H& w1 [};$ d  ]  F" s+ C2 u  J
) d# w  @7 L3 e- g
static int __init led_platform_init(void)' \  n/ u$ t7 _# m% W! s/ _9 H( N+ t
{
- D8 a3 U% P, r% j% U& o        int ret;# Q2 P% q4 ^9 E
#if 0' X, P  U6 B* e1 d3 ~& _* l1 H
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# \( o6 |/ r; r! F1 v3 u; e        if (ret)
4 Y% `# p. u# ^) j                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". @$ Z+ P. @( w8 `
                                "%d\n", ret);
. V, u0 S) f) l; d#endif
5 a4 r* z- ]' ^2 ~        ret = platform_device_register(&da850_evm_tl_leds_device);
7 A+ F7 [+ M. |8 Z. z. q        if (ret)
* t/ K. d2 X0 j0 B1 P# h                pr_warning("Could not register som GPIO expander LEDS");
/ l: w" r/ E/ e# T( T  ?        else
# j$ n, ]& @$ Y                printk(KERN_INFO "LED register sucessful!\n");
( H% }( k7 c+ l; a' V
, Z5 x/ d; N' Y2 Z9 P8 L- F4 j        return ret;  Y! r" w5 w7 V$ I) D0 d8 F
}2 B" f/ W* C/ y0 j7 t+ q

) E! w& X, ]) J+ h+ E( ^: o3 y, j" hstatic void __exit led_platform_exit(void)+ u9 k0 m5 @7 f+ Q' j8 U
{
! n. K! N# W' G( Z        platform_device_unregister(&da850_evm_tl_leds_device);! I. h/ K  K0 ~+ `7 m8 y
1 q/ d! U, L8 {/ d
        printk(KERN_INFO "LED unregister!\n");' D0 [$ i( {+ H1 o1 w# h8 X
}
2 i# `8 M# V) f% z
& K% z) i) k& e: n! N! C/ ]module_init(led_platform_init);
" `) O. y  H" c3 U& A! w6 Amodule_exit(led_platform_exit);
; [1 }6 L9 K2 s% `2 e% U
5 v; B* A, T9 t& bMODULE_DESCRIPTION("Led platform driver");. R) r* G1 {; j& `( `5 n2 |
MODULE_AUTHOR("Tronlong");" G: @8 P/ W& a* x3 [7 T
MODULE_LICENSE("GPL");
+ Y' Q- c9 \' W; V5 Y2 R, |+ C! A
# q' V6 m; D0 _' B2 y: ?8 E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-28 09:20 , Processed in 0.041147 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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