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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; N$ @! c, r+ A. X8 ~% B* \
#include <linux/init.h>. k* Y. E4 h  i" k$ i$ V( p$ U
#include <linux/module.h>
6 B: f  d- `0 S. z#include <linux/kernel.h>9 v! T3 x4 Y( H  t# x2 F
#include <linux/types.h>/ }$ j$ R1 V0 Q) y. X& @6 |1 S
#include <linux/gpio.h>
) h4 W3 X7 k/ n3 N/ ^. V#include <linux/leds.h>
. r6 A) z3 ]: A; z7 h/ O#include <linux/platform_device.h>) D# A$ F9 k) N0 N3 M8 P

, ?. t/ w5 `3 O* }6 O#include <asm/mach-types.h>
9 c% f7 k# u7 O! |8 q/ i#include <asm/mach/arch.h>
, \2 G6 ?( g+ I" Q/ _3 ?& y#include <mach/da8xx.h>; v) P& e3 d+ n' e& v3 H3 F
#include <mach/mux.h>
; g, F' f& L3 R. j  n& Q/ W) ~2 ~9 h3 s: `4 B
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 f5 e" S- B. x' b. \# B#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 S# c4 W, q2 D7 J9 j' u5 q) |) {
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 ?6 }6 D7 B2 y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): e& y& c1 D( p7 u, i
/ i" V: m1 f4 H* Q% H# r8 B3 ^( q. t
/* assign the tl som board LED-GPIOs*/
  ^( M5 H; ~3 kstatic const short da850_evm_tl_user_led_pins[] = {
% o6 w# g' B$ j: v) x2 n5 `8 r* |        /* These pins are definition at <mach/mux.h> file */, P0 y& }. x. C/ z* D9 y: r) q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ a5 r4 ^  G7 F+ h" U
        -1
/ y8 |& r( N. y. L$ V( N};) O2 y7 [* q3 l
9 n1 ]0 P8 \* Z& Q" X* i: _
static struct gpio_led da850_evm_tl_leds[] = {
! t6 ~# A! j( m9 A        {2 U" |) A8 [5 p% z8 \3 j
                .active_low = 0,
- W8 b; E% H* `# x" W; {6 }( I                .gpio = DA850_USER_LED0,' J! R- F7 l. d* Q7 G( Q' Z3 v
                .name = "user_led0",) A8 k& H. F" h% E) s
                .default_trigger = "default-on",
% q- E8 M, _- }+ A. A+ Q        },/ g  F! {: n+ U1 k/ V
        {
4 Z  Z% p6 g5 o8 t) x  e: ^, @                .active_low = 0,
. _$ [+ i* r' M7 X4 R8 M  C                .gpio = DA850_USER_LED1,4 P3 F) O& S; K, S  h  e: y
                .name = "user_led1",7 H, H  l: m- Z$ ]. G
                .default_trigger = "default-on",3 f$ X9 q) _' N5 F/ T2 v
        },
" e% m. K8 z0 I! H" @# R$ d        {) a5 E, j- P0 B% z4 g( U
                .active_low = 0,6 N- [1 O% V! t/ d5 y
                .gpio = DA850_USER_LED2,5 f' H2 Q/ _3 M( p
                .name = "user_led2",7 J. [/ h9 e& ^3 ?5 F
                .default_trigger = "default-on",
5 a' g# d! C. T# `        },
9 {5 [# P: j* G. l4 R* a) f' z        {
7 N' C; ]$ J. o                .active_low = 0,9 l. L' U) T$ |2 ]9 \! N
                .gpio = DA850_USER_LED3,3 Y8 u& |5 h. X/ n% R+ Y$ P
                .name = "user_led3",0 ?9 N: j8 [$ }9 w  d" e( w
                .default_trigger = "default-on",* j" s1 s2 L; a) Q9 O+ H( Z
        },
( G' i7 u; j/ _/ ]; v% Y% c};: J* }+ A, O+ C

) v/ C3 |' x' w( l, E* ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) q/ M  N; p0 s6 S; h/ ~) r5 J$ Z
        .leds = da850_evm_tl_leds,3 Y' g7 |5 G: G1 Q2 U' @
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; B. G) R' T4 U. l3 c
};4 ~, G4 c8 z7 _9 U% n

) a0 w1 V! G/ [2 B9 L# b2 F( Hstatic void led_dev_release(struct device *dev)
3 I  |6 s9 y' E# j# s* F6 ]8 y{
) D1 H' G! v2 ^$ z3 z) g2 Y};8 J3 T; p/ ?1 p

4 Z4 x0 `9 r7 V6 p( W. x- C( Bstatic struct platform_device da850_evm_tl_leds_device = {
: Z, j: x1 M" L9 n# ^" ]! W        .name                = "leds-gpio",
& W2 O: q/ q$ X0 _  w* g' B" v        .id                = 1,% C# j+ [& o4 B% u
        .dev = {  @+ p! n5 ~: ?' S6 z& I6 P" M
                .platform_data = &da850_evm_tl_leds_pdata,
) i, e& R$ _* S; x: {* {9 U, g4 z                .release = led_dev_release,% C$ \, \% R( o1 N
        }
, X, N, Q; d' Z4 @3 P6 g: U};4 p9 J$ o8 @: W" V

4 C$ d8 t, [: w7 N; R$ astatic int __init led_platform_init(void)
+ V0 O; h, x: M3 X* r6 b{5 s) _" d. v; c4 K/ T
        int ret;
& J# g- I8 m( @( i) P5 K. p#if 0/ r* W3 K, S* v
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# W, B" ~1 M: x  k, Y  m& s        if (ret)
) x# W: _, A! B7 o' b6 t                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 Y, E) a1 m! P9 s) @
                                "%d\n", ret);
( G1 Y$ O: Q* O/ ^; o#endif
! m$ M( S" K9 w+ m# ]% T/ P  Q        ret = platform_device_register(&da850_evm_tl_leds_device);/ O7 W/ O$ ^5 z. v. U; d2 @* _
        if (ret)9 X9 c7 D9 r1 @* N( I) i
                pr_warning("Could not register som GPIO expander LEDS");
3 G6 n& r3 g+ o( [        else( a4 F& y) O$ b; [$ `6 n
                printk(KERN_INFO "LED register sucessful!\n");5 ?0 w3 c4 b; i1 ]
4 [8 G8 L! o* ^7 A- g
        return ret;; g) f0 J7 s& X" R1 }
}- Z. D+ ]$ t# B
8 n) v0 u+ h- {% r" a, C8 X0 _
static void __exit led_platform_exit(void)
' Q0 D( f6 T8 E: |4 H$ b0 K$ \$ K, r7 j{$ u/ ?( t4 J/ N+ h. ]
        platform_device_unregister(&da850_evm_tl_leds_device);
* g0 g: A! T$ A* ^5 x6 V7 G
) ^8 N  L9 @: s+ _5 c$ ?        printk(KERN_INFO "LED unregister!\n");
8 ]5 v/ Q; t# i}8 J9 t4 I/ f0 y) B( Q( U) [" K

% |- G4 a8 Z0 P$ A2 f3 Ymodule_init(led_platform_init);. y3 k0 H! {  l
module_exit(led_platform_exit);. l( K1 i( O+ r% p5 Z
% E- A1 ]$ }/ c
MODULE_DESCRIPTION("Led platform driver");
0 c" ?; K/ K7 c- |5 kMODULE_AUTHOR("Tronlong");! h! {' Y( c- `+ L$ F) V4 |& u
MODULE_LICENSE("GPL");. {7 I! I3 @% g8 K

+ M! n& R* M) z6 P0 r( J" o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-1 14:08 , Processed in 0.056277 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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