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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( j) i1 V4 @+ m9 |+ ^' j1 h#include <linux/init.h>" s+ \% ^: S0 F/ P! P0 P" f: k
#include <linux/module.h>
6 _1 }: s& T2 z5 w2 I# E& S2 S#include <linux/kernel.h>
* u& [8 i7 x% j$ C7 t0 `6 r0 {#include <linux/types.h>- M/ M; ]; P* `% o) r( ?0 u; {4 ^
#include <linux/gpio.h>
% W9 D6 |% C6 y8 g#include <linux/leds.h>
7 \  C, c4 Y) W" R; `; G6 ^1 O  j#include <linux/platform_device.h>/ X2 ~" W% }8 W( D7 O5 E

( W5 Y. k" S( C3 I: P* S#include <asm/mach-types.h>
6 H7 ~6 r7 _' d  F#include <asm/mach/arch.h>
+ v0 M% k: [" P  `. o: V- ~8 I! }#include <mach/da8xx.h># y6 p) L& g: [. P
#include <mach/mux.h>1 x) _' f8 Y4 C* F
- \. Z( D  l4 P0 ~
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. }& i/ O' L7 J  u  `- Y" |) d! h$ u) Z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ g+ D  ~* e0 S" w#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( Z1 m, @  S4 V6 }, n
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( U, u2 d8 m. [: o$ u& J1 i  F
$ M+ M' p) a9 j+ _3 {
/* assign the tl som board LED-GPIOs*/
# ?, R" b$ w( Z! t8 \! mstatic const short da850_evm_tl_user_led_pins[] = {
6 S. `% N# y0 x5 o        /* These pins are definition at <mach/mux.h> file */
" Y9 V: u+ A, ?; v5 E- G2 e- A        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ M8 q1 a. q' [7 Q6 _  b        -1
1 }& a& Z& O/ L5 g8 n};4 P5 c+ k8 t7 l3 e/ d1 ~$ j& B
% q4 \3 C( y* `+ N
static struct gpio_led da850_evm_tl_leds[] = {" O" V( I. y* v5 D7 j1 s
        {  Q7 O- c' `; S, S( z3 {
                .active_low = 0,1 Q0 N2 y& A( `" _- `8 I$ T$ c
                .gpio = DA850_USER_LED0,
% f  n# B2 H& a4 h4 S+ ^                .name = "user_led0",0 D0 _. F% I! b4 M" b% v; v7 Z
                .default_trigger = "default-on",
8 X. W: V! t5 \9 Y8 }2 }        },5 M& h" y. V% M& ?2 F
        {3 ~4 D. i# {1 Y. _7 L& j
                .active_low = 0,+ Y6 m9 g; @  \6 f: ?3 H
                .gpio = DA850_USER_LED1,  U3 g( _, e8 `5 Y) T
                .name = "user_led1",: s; D. i/ w5 T) K4 F
                .default_trigger = "default-on",2 ?7 @5 P8 W4 j" [2 L# _
        },
- Y7 s6 E) l) a+ P1 g        {
& `; ]1 i4 y. }                .active_low = 0,
. c* g9 g. O$ P- [                .gpio = DA850_USER_LED2,
* S# s  v! p3 e8 F                .name = "user_led2",
: n' ]+ ]4 h  r. u7 y                .default_trigger = "default-on",* F5 v9 t+ ^) g& u3 l! @* Y. s
        },4 o' \3 P6 z: d
        {) q6 {9 I  S. J7 X
                .active_low = 0,, T; T, A% d" R  n  n2 H- Q
                .gpio = DA850_USER_LED3,
7 h# ^, M" l& c- s" T  ?3 n: p: F                .name = "user_led3",( f* D9 j& |+ m0 O
                .default_trigger = "default-on",
( x2 l( {9 f7 i        },8 B% A) @1 k5 a
};. A' `9 R9 u& u! U
7 _9 l8 S; p: }# m7 r, p" B' z+ P
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. d0 o; X9 b. k4 v6 K& q5 X2 ^. M+ D; V3 h        .leds = da850_evm_tl_leds,) J: t" E* j4 }: [& E
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 F9 _) |, o, m5 d  ]& Y};
( M) m! I$ p$ z2 ^+ _
8 `5 f% G; u9 E' x4 v: @% O% Jstatic void led_dev_release(struct device *dev)& f; \: W4 @2 }
{
9 b! n' }) C, i};8 }# C& c. u. w1 b/ x
, Y( _: T- P& V( g9 b
static struct platform_device da850_evm_tl_leds_device = {
& V( y" k" y9 |9 E) T        .name                = "leds-gpio",
' {) {+ P' c3 [& P2 _8 d        .id                = 1,
3 o( d% X/ M- D0 V5 C" y        .dev = {
7 {3 \- _# N  C                .platform_data = &da850_evm_tl_leds_pdata,( B$ Q0 o7 d$ x0 Q: K0 v; c6 W
                .release = led_dev_release,1 w2 \& R+ \  ?; U- v
        }3 b0 k8 h7 X, h( \' i* T
};: g9 T# L$ R) x3 C$ P
3 @/ \* |* u  q  i
static int __init led_platform_init(void)
4 Y$ B! x9 p: _3 Q, A) }' p( f7 R{
* `" M7 n0 e9 L" [        int ret;
. C' N& O' J3 q  d; h8 Q#if 0
2 j2 T/ g% H' h( y! ~( h0 {& ]        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% d# }1 K. t8 E3 l8 k
        if (ret)  s0 u/ n/ n) C; }
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ H9 |0 J# J1 n# U$ f5 A                                "%d\n", ret);
* b& q2 E6 a3 _  a' M! U#endif
1 A# `, U! m8 |! x        ret = platform_device_register(&da850_evm_tl_leds_device);
% \3 L4 p' V- v( j        if (ret)* }' D+ _; f) J, w3 ]
                pr_warning("Could not register som GPIO expander LEDS");; O. F% d/ }0 j2 w
        else
  K! m  A& v+ D+ D8 a, y6 L6 g                printk(KERN_INFO "LED register sucessful!\n");
1 j" L( \! o6 Q; p6 j' m
5 s( k7 ~2 y2 X/ Q! l0 V1 J        return ret;% L( B/ L& e. d' b/ n; o8 \
}
3 @* K/ ~$ z( J) T: R5 E3 X6 a
4 K% }* Q+ v+ Z* f' A; Qstatic void __exit led_platform_exit(void)
( E- @) \! O! F5 |# m6 g{( [% i3 e: i/ r' \
        platform_device_unregister(&da850_evm_tl_leds_device);
6 L( \# E1 G! `  j- @5 w7 Y
" y! [+ l: ^  P1 F! H# R7 t        printk(KERN_INFO "LED unregister!\n");5 g! T4 \, v3 l7 Z7 B
}
' N2 h. ?2 {! U  A8 z. o. e- G5 p0 k, s. L
module_init(led_platform_init);
! ?$ w6 k+ n- v) kmodule_exit(led_platform_exit);
$ h3 y% c' Y# X# I% s. {: {( {9 @8 n7 M
MODULE_DESCRIPTION("Led platform driver");& V8 n5 L' s! x8 l8 K) N
MODULE_AUTHOR("Tronlong");
4 e6 o4 D7 c2 D2 D4 \$ b( OMODULE_LICENSE("GPL");
1 X" ^- k, I. K/ z# S: u
& q* }2 l% @5 e$ S# ^, a- X/ T" P! y2 l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-16 18:14 , Processed in 0.039309 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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