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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 t9 H) v% X/ T  q9 f
#include <linux/init.h>9 r, t5 I. D( F
#include <linux/module.h>7 ]. J7 y. u0 U: W( {
#include <linux/kernel.h>8 {# r! N& K5 k- y+ k5 D
#include <linux/types.h>
6 `/ N- N; {7 z7 ]" p#include <linux/gpio.h>8 x0 o9 ^3 ]( {( o, o
#include <linux/leds.h>5 H% z! W: B, _$ `9 v
#include <linux/platform_device.h>! |6 v. R6 P. v

' P6 F& r9 G+ d% X0 E) V% @#include <asm/mach-types.h>7 Z/ g. H, `& Y; D4 F1 ~% Y( p! O" ^
#include <asm/mach/arch.h>9 F% {+ V$ |& R
#include <mach/da8xx.h>2 ^9 A. J7 s- z2 ^4 B
#include <mach/mux.h>) ~5 s2 K* \1 q! r
' G, r. R( I' |1 D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# X, @8 H- i5 M6 q6 s# |& Y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% G& ]( m5 c- H+ a$ l  }
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 V7 E9 ?3 }4 f% g, Y6 y" \#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 D  t* T6 C) s( v
- }! g. j9 O$ X% q/* assign the tl som board LED-GPIOs*/
3 X$ [3 ]: b4 o. O+ l7 {static const short da850_evm_tl_user_led_pins[] = {1 B# Y" P7 M- r/ {9 `) l5 z
        /* These pins are definition at <mach/mux.h> file */# B, }; j7 a5 ?# k7 \* M
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," U- A9 n$ F# f* s/ g
        -15 \7 E5 `; `! S9 J( C  u8 W/ X
};8 J+ G  h2 e7 n9 O
9 q$ v/ B! i0 p+ e& L+ p' ?: B
static struct gpio_led da850_evm_tl_leds[] = {
& a0 M2 g; p5 j& z! t) I        {3 a8 t% u: K! Z& k" H1 p
                .active_low = 0,
# o. u1 E3 s& ?1 j9 ^" f                .gpio = DA850_USER_LED0,1 z& F5 K- C. U+ ]# D
                .name = "user_led0",# [+ M$ W" U8 s  }* }0 }
                .default_trigger = "default-on",
8 o, r/ |4 u' k2 \" v2 q. w% ?, F        },
& [+ A4 }- O2 m3 r/ d; y9 E        {* I! x* ?. {1 Y3 g
                .active_low = 0,4 N3 w/ `8 ~1 D! x. |
                .gpio = DA850_USER_LED1,
/ E: E5 I$ q6 u% o0 M; a                .name = "user_led1",
+ i8 A6 `% W( I6 a- ?4 t% V                .default_trigger = "default-on",
9 U; g* b8 ~% d" ]) i; v        },8 l# R  g7 O* D  ?! V; t
        {: `" p/ r( u& Y8 H2 N$ j3 T3 V
                .active_low = 0,
3 R) s7 i- ^  |9 c! d- w1 [6 B                .gpio = DA850_USER_LED2,( n: [5 {! s. d6 K" G4 ]
                .name = "user_led2",( N& l9 N6 T, s
                .default_trigger = "default-on",, W. L( L5 V6 [4 T; G
        },
' z: U5 n$ V3 F, N. O3 J$ G        {; ~. S( d5 k0 J3 P
                .active_low = 0,5 ]% U# T- z  ~9 @2 ?; ~+ I" I
                .gpio = DA850_USER_LED3,
6 r$ l& U- o, q2 T6 I; |. M, Y; D* d                .name = "user_led3",
/ J# R- `3 T1 m" D( |" M                .default_trigger = "default-on",3 \4 c; u, o# x  R# c  r
        },) Q" L9 b9 T$ L7 b7 Z+ U5 }% C
};
) i0 E/ d  \' b% k% Y% F  _" R5 r
/ [& J: X7 c, O1 \- L, A8 ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 c/ x5 O: T- x+ A7 l3 v        .leds = da850_evm_tl_leds,2 N: O3 S9 s7 E
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& w# [* j; [2 a# m5 R1 v4 {};
# A) N# n2 _" g/ v- Q
) g7 G0 Z3 |9 i+ pstatic void led_dev_release(struct device *dev)
1 M9 b1 j& U- B9 [  H{0 u) R1 A! X# w( R* P1 }1 m* F4 f
};' Z! |! ]4 k  i

0 q% \% ^: r( \0 W$ F4 m% Bstatic struct platform_device da850_evm_tl_leds_device = {
5 {% D+ ?: d7 y8 t+ ?. E        .name                = "leds-gpio",
& _1 j( Y( u, o: c        .id                = 1,, x  h# Q' ?$ w
        .dev = {0 @: @+ |7 s  `" m
                .platform_data = &da850_evm_tl_leds_pdata,
( Y  Y; i% T; B3 v% [! K                .release = led_dev_release,
8 Y0 S, {9 g; I- y! o        }
7 D. r1 ^; ?( L# \};# L& W* r4 v, C6 }4 Q
: N8 Q) M. i4 u" S; v
static int __init led_platform_init(void)3 T! h' z( d4 _
{
& F0 ]1 s/ Q& [( n& P  |4 B        int ret;
1 Q4 f. E- K% U8 t5 l#if 0* K3 h: X; j& q- z$ e% N4 \, [! }, r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 A" ?' H3 F8 L, c4 ]        if (ret)
9 Z: `9 p; K5 [; Z* ~                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% z9 i1 }8 o! b. \* f/ ^
                                "%d\n", ret);4 P; Y; v7 T" C. o' l
#endif. n% w* R( \3 Z' `5 W
        ret = platform_device_register(&da850_evm_tl_leds_device);
  ], g% ^( v6 L0 _, M        if (ret)' G$ G  p3 `* X- O. b
                pr_warning("Could not register som GPIO expander LEDS");
2 Y1 j3 {4 f* y        else
$ }( T7 Y5 L0 b/ T! ]& W                printk(KERN_INFO "LED register sucessful!\n");7 r# @' _/ o7 w9 ?/ ^  ]

2 A6 j, H6 ^9 v        return ret;
0 i7 U3 S5 k, R3 |}
! N' D: n% L& P; S# V$ X. F
0 i- a2 R2 x) v! estatic void __exit led_platform_exit(void)
* n# \% m, T4 p8 j8 a9 c{- k6 i: `3 {5 I  Z+ H
        platform_device_unregister(&da850_evm_tl_leds_device);( P3 y: U& ]' b7 t$ l2 }

' }6 E) E* g  V+ R  R        printk(KERN_INFO "LED unregister!\n");
+ |- l1 d9 i! {! u* H" l- ?* O}
" h% P! @, j* O! h- I9 q7 m$ `# @7 T! F/ g' r
module_init(led_platform_init);
' @% Q) L! F; o+ Dmodule_exit(led_platform_exit);$ c5 y8 q$ G( `& |

* h/ \: `  G, u% g+ Z$ }7 `/ NMODULE_DESCRIPTION("Led platform driver");
2 |4 n% ~+ E5 |; h- @3 r" q8 \' fMODULE_AUTHOR("Tronlong");2 \9 P0 }# L4 T, |0 S9 a; h1 j
MODULE_LICENSE("GPL");
3 ]+ Y! D( x: M+ r1 L+ ]3 T; B% D3 W& B) y4 l: |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-5 08:24 , Processed in 0.039278 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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