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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- m8 J  B: S: O4 [, E0 x  g5 J3 ?
#include <linux/init.h>% ]: ]8 y4 I5 A- |  t6 h# _% N% B$ j+ i
#include <linux/module.h>
% n  ]: ^' m$ w#include <linux/kernel.h>2 g- F" u; {2 t$ p6 Z! F
#include <linux/types.h>
6 ?- z  T6 L& }) r#include <linux/gpio.h>
2 V* b9 ?- g! D; _#include <linux/leds.h>1 O6 _2 {4 s4 J7 ^+ @: h3 c. @0 E9 _
#include <linux/platform_device.h>
$ o/ T( f, e- P: y1 Q- _1 R+ k+ u1 l
  t  B0 ?( q  L9 v% l#include <asm/mach-types.h>0 s7 I: y$ ]$ K* j7 r; c; `
#include <asm/mach/arch.h>9 f* @7 z- p, |7 u$ N0 @
#include <mach/da8xx.h>; [+ d3 Q8 x" u
#include <mach/mux.h>9 p1 p5 ]& b; b8 v% C

  U$ d* m3 I; f3 X0 t#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) F2 Z! j! U6 m2 p! {#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- j/ q; ^1 N  r6 U+ C, R" S' L, b8 ~7 k#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  G2 C% k8 e: ~  k, f# W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& y' ~6 C. R5 f

" F# u4 x6 i7 ^/ C  S/* assign the tl som board LED-GPIOs*/
- J2 \, T* t4 Q0 B6 M. C3 |static const short da850_evm_tl_user_led_pins[] = {
$ A8 p7 W9 H1 _- }2 ^        /* These pins are definition at <mach/mux.h> file */6 A4 _; }3 g0 L0 o/ |$ q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 t* _0 u5 k4 _7 i4 h& G: E5 y        -1
. H0 i6 m' E; _# K! J( }2 V};' f$ V9 H  m% ?( l1 R
. f- Z; u  x( S0 F0 r# Y
static struct gpio_led da850_evm_tl_leds[] = {
, s9 {3 y- |1 d0 n( Z        {
2 t; {# s! U# K# J9 j! S/ E) y5 m) b3 i                .active_low = 0,
" e$ n) q, f- _7 y) {4 F                .gpio = DA850_USER_LED0,/ t6 M. ^2 g+ @/ r* o
                .name = "user_led0",
% ^* A- L- R* z" \4 X9 ]                .default_trigger = "default-on",
; o, d( E0 u/ v$ e2 p$ M& ~  q! P        },
. P+ z1 N& ?4 P0 X$ f) E8 e        {
6 O  X* h7 ]6 k                .active_low = 0,
* U: ?2 S( v. n3 w( d! |0 ]                .gpio = DA850_USER_LED1,
$ |7 w; ^3 k7 \# [                .name = "user_led1",
: b& d5 T7 Y9 A8 m! _                .default_trigger = "default-on",* e- F$ _" ~4 T5 ^) ~, Y; l# y
        },( Z8 h+ F( {  u5 w1 R
        {& j& I0 s% O5 \5 e9 R
                .active_low = 0,
, F7 n6 }; R# Z9 q) V$ Z6 |                .gpio = DA850_USER_LED2,
) x, j9 r2 A& b3 \( `                .name = "user_led2",
0 Q4 _) X" @/ T. J0 p7 K: ]7 ~  k) u                .default_trigger = "default-on",
0 ^: F" m  X8 q9 ?        },5 D8 u6 W4 `- J
        {
* k, ^2 g  x' D9 E                .active_low = 0,( V/ H- d% @6 }# \1 X
                .gpio = DA850_USER_LED3,
& p& y1 U* b5 `/ P9 {  b5 L                .name = "user_led3",
" |6 O- ~6 T- x                .default_trigger = "default-on",! X! ?3 \# ?9 B( n$ z
        },
, s/ D- K$ y" z" e- D};8 L2 q& j" a. ]2 E& y

4 O, G. i- w* R4 k% h* xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 n! P. t0 F9 y2 |4 \! J- C        .leds = da850_evm_tl_leds,
" |, f, _" d3 ?+ K) P# C        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 p+ I( }$ s( m6 K. P
};. N- ^7 S5 x  x! @* R6 B1 U# L
, p& m! N2 Z3 x# M- G$ y
static void led_dev_release(struct device *dev)  n& S6 @  d2 h- H, O- N
{
8 s% G4 V7 l6 S8 |# b};; o! }' B" v: r2 M" w2 ^
, c7 {$ |8 P8 c0 m$ @  W3 }6 c  H0 h
static struct platform_device da850_evm_tl_leds_device = {
' f0 _% z4 l& X, f        .name                = "leds-gpio",$ H# \; ~! s7 n% c) ^% W/ L$ D  b
        .id                = 1,
3 n3 J/ c, Z; e( y, _0 W$ I2 S        .dev = {
6 Z. G  D8 j/ {                .platform_data = &da850_evm_tl_leds_pdata,: S* f) L. c# l% S. U
                .release = led_dev_release," v  g# f7 n4 l
        }
' q8 p: I8 Y) ?1 @: i4 B( ^2 d};
  e9 p4 v' h) }0 P3 T
& B+ P! N7 }+ Y0 R- t) k- Gstatic int __init led_platform_init(void)( O' L; ^- a6 K# \* H
{& ^5 ?6 |2 e- h- q
        int ret;
- T$ V* `( _0 V3 _- B#if 0
# ?. N* J6 J% u/ k        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- B$ p8 K: o2 _" T( z        if (ret)7 N5 m% G) _/ w: j7 V* n
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* @% j, K2 k- ]6 A" ]. a0 M, U                                "%d\n", ret);6 _7 C4 @: p( k$ q, v
#endif
* Y2 `' f$ w6 Y* x- c0 l& c        ret = platform_device_register(&da850_evm_tl_leds_device);3 q1 M7 i2 C3 {* N+ x  [# [! D, ]
        if (ret), q5 g1 w: z7 y
                pr_warning("Could not register som GPIO expander LEDS");
  ^* V- ?3 f- G! e        else  i' z6 V0 F+ W% c' k
                printk(KERN_INFO "LED register sucessful!\n");  m7 \8 @/ ]/ d( B* w' E
, i/ l6 t8 p3 V1 o  L
        return ret;! P/ u, {7 y; N
}+ [4 Z5 [5 K2 e* x6 x% Z2 D" b
% L3 o7 r5 U5 K2 Q
static void __exit led_platform_exit(void), t% K2 i( D' v" d/ V! m3 A
{
6 |% h, L5 W3 O' M        platform_device_unregister(&da850_evm_tl_leds_device);
: z8 R0 R! c( e; l" e  p) E7 R: B9 R2 i5 b  c+ \4 N
        printk(KERN_INFO "LED unregister!\n");5 }) V& c1 _$ V0 n) i: a/ J2 I
}
# F) n, ^& l5 A8 R$ S/ |8 f) s  |' j1 k* ~* ~( X
module_init(led_platform_init);
" d+ D8 P& P9 |5 R3 R5 Cmodule_exit(led_platform_exit);
2 r' z( D# d* d! K' O1 J0 }, E0 a# v' H9 s& i
MODULE_DESCRIPTION("Led platform driver");3 ^1 |0 l3 f- X1 X
MODULE_AUTHOR("Tronlong");# p  s/ A6 X& G0 v/ ?1 n6 S
MODULE_LICENSE("GPL");
9 w, |4 C+ s: v+ h% _5 W8 q  l% r8 n' q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-13 23:56 , Processed in 0.039360 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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