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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。) h; e+ U1 N' C4 r0 L
#include <linux/init.h>
* [) Z* u, @7 f- n#include <linux/module.h>- x; e4 h8 }" ^1 d8 f; {
#include <linux/kernel.h>4 r# {- h$ H0 ~/ |6 V2 i
#include <linux/types.h>
, k: e* K+ y, V* l#include <linux/gpio.h>
; C! a/ }1 s' v% y#include <linux/leds.h>* z" }/ D, z# h" @
#include <linux/platform_device.h>
! L) a1 z8 J1 N+ u' N8 _# B6 _0 W4 J$ l' a
#include <asm/mach-types.h>. {% ^8 L4 A& k0 `. R* \; A
#include <asm/mach/arch.h>; U% h8 ~$ ]0 h# D
#include <mach/da8xx.h>
( |  s4 q. F9 m1 G#include <mach/mux.h>
. Q; }, F9 Y: e7 w; m4 H" c9 ?1 o$ e, p
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 W; X% X/ c3 ?8 b3 a2 d#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); E0 I( A6 U0 x0 q2 F
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 u( U/ J- ?) K; s  T1 N' [
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( \! z" n7 L3 z; T! U
7 X& }* Y) P  A5 b% K- O, w/* assign the tl som board LED-GPIOs*/. v! W8 d1 |5 m
static const short da850_evm_tl_user_led_pins[] = {
# a$ p9 \! V4 D/ f+ u; t        /* These pins are definition at <mach/mux.h> file */9 g; `( V: W; L
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ q7 o9 L# u0 i% t
        -1& w& K/ i$ G, l$ O! T. C6 x
};
9 X7 X$ F& W+ N" g
, _  P8 z' p. I" U7 P. j! g& Wstatic struct gpio_led da850_evm_tl_leds[] = {
) v( g! `) }1 [        {
2 ?% O2 [( k% h2 |* Y; |                .active_low = 0,
' x7 \9 S, o: F2 N! O, K$ @                .gpio = DA850_USER_LED0,2 i  x& ?4 R. U- B( q/ U$ m; Y
                .name = "user_led0",
+ x1 q1 u! d" c, f$ K7 i- L                .default_trigger = "default-on",
( G; E: J$ p$ d2 A! \/ y        },
% q+ x6 H" b7 c        {
2 m+ k/ ]& s, z' W                .active_low = 0,  D9 ^  E: H' e
                .gpio = DA850_USER_LED1,- P3 e+ {6 R' D6 E4 c  O
                .name = "user_led1",; [* B9 `0 {0 @& |7 h% n
                .default_trigger = "default-on",1 T* c, ?8 q& c% r0 b1 P, x
        },
3 G% O% |! S* h& ?( o. s7 p        {" X" z8 |& w4 i: z7 c
                .active_low = 0,( A$ j) X1 |. `* t$ j3 ?
                .gpio = DA850_USER_LED2,9 [1 }! h. x: Y8 v
                .name = "user_led2",
7 D7 X/ Z, i( Y: `                .default_trigger = "default-on",0 j+ o- B) j2 o
        },* N5 U! j: n# A2 O
        {. U9 e# w! [+ L0 h3 X0 A
                .active_low = 0,6 B2 g' a2 o, G4 w
                .gpio = DA850_USER_LED3,8 q' O' v: D5 C4 l( ]
                .name = "user_led3",
0 {- x* ~: g. i6 H. l( \                .default_trigger = "default-on",' f) I4 u; C. O( [% C
        },8 `; i& {5 y7 R  L, g9 a" z
};
: E, q$ V& @* y. V
5 w% f. S* n& t  R" q! x% rstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' W  S4 v; B* i5 l8 a4 W' L
        .leds = da850_evm_tl_leds," ~% q  n  X4 T0 Q3 L" Y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 o/ T( h  y5 x& W- k
};
/ L" r  Y5 A" u  Y  v" B! ^( `7 `+ _
static void led_dev_release(struct device *dev)
. |; y1 a* A4 m. `# G{, X: ]) |- Q  E6 x2 r
};
- U, |$ @' u0 [/ B, x! u
: h9 k, P7 m) g" Qstatic struct platform_device da850_evm_tl_leds_device = {* [# r! b% W; `& Q" {! I, M8 _8 G
        .name                = "leds-gpio",4 E3 |  {! Z  x# z1 r% b" G# s
        .id                = 1,
' D5 J$ w4 @6 _' A* q        .dev = {( t/ ?' q4 t7 @
                .platform_data = &da850_evm_tl_leds_pdata,0 Z0 p, R3 I9 C! U3 _
                .release = led_dev_release,
6 |, b+ |" o: b, d* x        }# m0 X; w9 I( f% {2 W" ~8 p0 C6 ~
};7 f: `7 h6 f9 T: \

1 D) d9 _" P9 K! Q3 y1 _% Ustatic int __init led_platform_init(void)  n- V+ z/ a3 u( e* N; u' O
{
0 q4 K5 d1 @9 P9 t; j4 l        int ret;
8 h% D1 \) @! h. y) X#if 0
0 {5 |4 D& w; N2 }' W! r) a! u        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; ]! C8 ^: _2 @2 ?        if (ret)9 [( ?2 P& O# p5 w8 q) K" c0 J
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! z; ~7 n- j* i3 f$ l                                "%d\n", ret);4 J2 o6 \, _2 u8 K
#endif
# |/ h) X  w2 F1 V        ret = platform_device_register(&da850_evm_tl_leds_device);
. }9 e  y; z( Z        if (ret)
5 r3 w9 e6 H0 Y                pr_warning("Could not register som GPIO expander LEDS");
+ v; r/ e. h- H6 r: Y  K        else
, W% ?& f8 X. H  ^$ S                printk(KERN_INFO "LED register sucessful!\n");
+ m- [6 ?+ }, I
' {. u, o4 t- w+ M& x" R  i' ^3 G        return ret;
% z7 j4 d5 a$ o}
) m0 [7 k- F6 _* z3 L; R9 N; r+ n* Q
static void __exit led_platform_exit(void)( _5 D& [/ B/ z
{. v6 C+ D# D% C8 [6 P* t+ S. Q* l
        platform_device_unregister(&da850_evm_tl_leds_device);
) D8 N2 v& {) f0 s5 \# L' A& T( q3 R# l/ V
        printk(KERN_INFO "LED unregister!\n");
/ Z. ~  L) [/ @9 n& V. g3 Z7 X}7 J6 B( {7 q" T7 v8 r  K
# S4 L& ~) W3 ^& [# \( W% s  L# b
module_init(led_platform_init);7 k7 d3 q2 ]! E5 X7 ~
module_exit(led_platform_exit);6 W6 ^6 x/ _# u) A9 H& X

( K* K1 \2 E* S/ v7 RMODULE_DESCRIPTION("Led platform driver");/ u! n! ], o3 \& U4 D
MODULE_AUTHOR("Tronlong");
, U( ~- e: e: g3 W+ l- |MODULE_LICENSE("GPL");
6 A0 f/ h- t9 ~1 [+ b/ k. D% U( A* P  c- T: N: T0 a+ @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-28 09:39 , Processed in 0.045844 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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