程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 n: b- T. R7 l4 D1 q
#include <linux/init.h>6 \( e5 R: a4 E( i/ M% ?8 w
#include <linux/module.h>
! Y' h% Z6 a2 P/ I0 g#include <linux/kernel.h>! {+ Z1 M+ x* X7 h8 |% {
#include <linux/types.h>
, T' b6 L6 m6 O! b1 c3 n- Y" I# u#include <linux/gpio.h>
/ f9 u5 c. v& I2 D: s! r#include <linux/leds.h># T( ^3 x- s- I. }
#include <linux/platform_device.h>3 H; K4 z- s7 k' e% ^1 v. t* d2 K
& |8 i1 _! [& q4 r" G2 r
#include <asm/mach-types.h>
( o. t+ \6 L& A#include <asm/mach/arch.h>
9 i8 r) O" `3 w; r' J& |3 W#include <mach/da8xx.h>
9 v1 Q2 E- q! P; N#include <mach/mux.h>
' B" p' D( j  P5 l& r5 t# E9 G& p  W: A9 L! u, u* C8 }5 Q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; z0 _! S3 M3 T; n#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 b' P3 ]  t9 }5 R
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# Y, p; a- }# o0 @0 ^4 t* v; v
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 L' R, y$ _3 ]" Q" _7 D& X) u

- A  E; s( S% b0 `' k  ~/* assign the tl som board LED-GPIOs*/
/ x" g8 Y+ e9 J; ~5 cstatic const short da850_evm_tl_user_led_pins[] = {" J: A) c' v; ]4 c& Z* q# D5 n% T
        /* These pins are definition at <mach/mux.h> file */
& t1 _0 j& |6 N  o( e/ u2 M1 G/ _/ ?        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ B  s+ N# d8 \; |. p+ a        -1
) O; A4 R1 b% I' O4 b* Z};' I& X9 ^9 w6 g9 r$ A
; }- D' D3 L0 @9 t
static struct gpio_led da850_evm_tl_leds[] = {: N/ m4 _: I+ y  U
        {
7 Q; x% ^1 }6 n( j                .active_low = 0,
) {7 z# g& m% m/ k& {1 Y                .gpio = DA850_USER_LED0,
! W, F, i* Z; Z                .name = "user_led0",
7 }( w( c, p, P/ W7 a2 l9 X$ L* I                .default_trigger = "default-on",
$ [& _6 q. Y& E% f* {1 ?& D$ c        },
0 ^( S  u( t' t        {
6 C' `8 m( L) U                .active_low = 0,  n) ~( v" Q5 N* A+ n5 G  Y8 S, o
                .gpio = DA850_USER_LED1,: j; P9 O& E3 C1 l/ i0 r  Q
                .name = "user_led1",' {$ l, L/ |' P. @. c
                .default_trigger = "default-on",( T, C# F* a0 B
        },
1 |0 [7 \+ l; k7 X: e2 O5 d        {
& {5 [& d" {4 I+ s/ A: D9 k                .active_low = 0,) m6 B. I4 S8 R( \) N
                .gpio = DA850_USER_LED2,
* n3 p$ I: l! `9 G: Q                .name = "user_led2",2 Z1 H% \! O; k- D/ f* V  q. X
                .default_trigger = "default-on",
3 [$ j, d) i8 d+ p1 P) f) b        },. l$ Q! y: m3 U$ R! f" R1 Y
        {
7 m, A, i. I, T, U6 x$ s                .active_low = 0,
' t+ }0 T; o/ s& J5 ~0 {. |7 _. P                .gpio = DA850_USER_LED3,) k$ K  p: s  o" m+ K$ Q. o
                .name = "user_led3",! _4 K7 i( ?9 s( F3 D1 a
                .default_trigger = "default-on",
% y2 h1 ~: }9 c: d4 B6 u& q' y        },
# Q) h0 Z& h" P+ @9 H};
2 l; ^& {- i2 O- g! n  I7 X% z, e5 c' `) e0 P  F5 L
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ b1 A4 k! [& t5 O# ?# G
        .leds = da850_evm_tl_leds,
! ~3 e- G& A& Y  S) y  o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ O& a7 d4 ^# Y* i( r
};
$ F- w( j" e; E+ s2 O& d
/ A" U& p. G( Rstatic void led_dev_release(struct device *dev)
0 g5 j% Z; C  h) U{
5 o% ?, v& N, y/ h' \' H2 m% x$ E};
- i) O5 u" @- u" O* `4 G1 `4 k' e2 y: M$ H* d  N8 q* U. a" m
static struct platform_device da850_evm_tl_leds_device = {. \4 h% S" ?# j- y  Z% i! Y
        .name                = "leds-gpio",/ F! `) j$ Y! N
        .id                = 1,) L* H+ v, m1 i7 |5 @
        .dev = {, H/ ?5 Z8 H2 ]/ q
                .platform_data = &da850_evm_tl_leds_pdata,
; m! s/ o6 ]1 H                .release = led_dev_release,' o+ w* R/ [4 k9 y4 ^6 l3 R3 s4 s
        }9 n# a1 \8 E, o
};
8 s8 U0 q' y) K# S8 K) ^, z7 R: Z8 y' o& c' s9 A# T& B
static int __init led_platform_init(void)1 ~4 f: y# e7 R! p3 s9 B6 x- ?8 u
{3 R) o7 j; O9 B4 P3 A3 d
        int ret;
! D+ E5 ?: g4 R3 L( w2 O: q#if 0+ h9 S  I, p: C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# H, o5 z, u+ X; E+ S7 |5 U
        if (ret)
1 _/ b; L' R; d( N; o$ J9 T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ F" ^; C5 F4 W& {
                                "%d\n", ret);1 N2 g/ b9 N2 l0 |3 t
#endif. c7 C  M- b7 {( |
        ret = platform_device_register(&da850_evm_tl_leds_device);4 V/ u# ^- u. v% W8 Z# j
        if (ret)
# {& z* I4 F. `                pr_warning("Could not register som GPIO expander LEDS");4 _( K, O6 c- Q
        else
1 y# E3 D5 d1 A& P9 Y) x                printk(KERN_INFO "LED register sucessful!\n");
0 m/ ^( ^" S8 J7 f) U" ^* E3 C7 m
% z7 l2 y9 q3 u: {* I        return ret;# y0 @/ q/ q, x8 V4 V3 N2 s
}
) X! T/ l5 w# ?6 W' Y( g' c9 ^& i  B$ G0 o- W6 }  H
static void __exit led_platform_exit(void)
# b, @! z$ W. L6 k! p{
* p1 Y6 S8 w( D( N7 |        platform_device_unregister(&da850_evm_tl_leds_device);/ f& m7 ?' O/ z
  O- e& d7 s! @/ v
        printk(KERN_INFO "LED unregister!\n");
! Z3 p) r1 n) {6 ~}  Q, G- n% U3 {# b8 ~
& k9 I" U& l8 _+ O
module_init(led_platform_init);
3 A9 I) B5 J& R# P# E" Mmodule_exit(led_platform_exit);
1 N# L9 O; `/ t& a5 W
/ D8 ]2 ~8 G+ R" ~" s! UMODULE_DESCRIPTION("Led platform driver");
0 ~' h2 l% S8 o+ }, y1 LMODULE_AUTHOR("Tronlong");
2 j1 w5 a, L" p) o* oMODULE_LICENSE("GPL");" C/ e9 r# p' [

0 c# L# {( j' G! X- f1 r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-13 05:41 , Processed in 0.038636 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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