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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  v6 K8 e: V/ I% H! u3 @- w; @% y
#include <linux/init.h>6 ^9 \# ~7 l' o7 R0 w- v1 s
#include <linux/module.h>
0 ~) a+ T5 n+ d* e/ v+ t#include <linux/kernel.h>
4 {' ^0 W0 n7 r  F% Q  U& x! Y#include <linux/types.h>
0 p: [6 \7 X  i& K" p5 x$ U#include <linux/gpio.h>
- f. Q* Y0 H! o2 V7 d#include <linux/leds.h>
) Q2 J% N1 i; \* m5 d3 H#include <linux/platform_device.h>- |9 d1 u6 Z# k* u; S

5 @  d2 L: N+ k7 n& A#include <asm/mach-types.h>
3 K5 i- \9 w2 O% a. O' s#include <asm/mach/arch.h>( g$ `0 M4 z5 h- B
#include <mach/da8xx.h>" W" o! F, v, x. F% l1 o5 a
#include <mach/mux.h>% h  r+ q- f3 T6 a+ |
! c% ]% W3 G6 B& N% N( ]
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' H- X! Y5 P" p( S
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; |5 [) b# y& J+ G3 ~, G8 d#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): O; v8 T2 y; ^4 Y/ ^, O) S
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 X' R  K2 d/ C  k2 P6 g0 H* d) n6 R+ T" u
/* assign the tl som board LED-GPIOs*/, n; ^1 ]% T( I0 l9 z; q
static const short da850_evm_tl_user_led_pins[] = {
# T' J! A9 P$ J- k8 q- i        /* These pins are definition at <mach/mux.h> file */; `* V2 q. J; Q; D/ ~4 N9 t8 M( A: a% E
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% C7 w0 P, P% ^9 f( A
        -1
4 e6 ~! N4 X& Q" ?$ U};
7 h  C6 E1 t, O- p: j; g* b# K7 h  ^- A. o
static struct gpio_led da850_evm_tl_leds[] = {5 {/ w0 c! F, C# t0 F: k' I; c+ z
        {
- O# q0 W2 J1 J' D                .active_low = 0,
. n7 g/ K; `  N                .gpio = DA850_USER_LED0,
2 N8 o6 w7 n6 ], [& p8 W                .name = "user_led0",
6 V2 K! f/ j7 I  h5 Q0 `7 e( u                .default_trigger = "default-on",3 V0 a5 v5 M6 \' M' y1 L
        },
6 b# i( |6 \9 ?  b4 j        {
7 B6 I$ Y( v. ?& m  w                .active_low = 0,- L0 j9 U) m: v9 L' T
                .gpio = DA850_USER_LED1,
5 D* T7 J3 O3 _                .name = "user_led1",; P& U' m5 o# M4 x) _! K- N
                .default_trigger = "default-on",
  O* E, Z  K# h! r% a        },: H# L; Y3 q" P# n7 s! Q1 j% C
        {5 o) [2 G& h7 ~/ w$ ^- a4 @# S; T3 {
                .active_low = 0,
9 T; B5 I2 C- I( ^) p                .gpio = DA850_USER_LED2,
- N1 w* `. g  G7 w: u5 I- c                .name = "user_led2",$ |3 v! b) A8 S) T* |
                .default_trigger = "default-on",
9 C- R! Q3 E- ?* R4 J  x        },
7 o9 g/ l* V, ?, F5 J7 d        {+ d7 B4 G( ~! l3 K' U& v
                .active_low = 0,
; f; X3 E/ z! E  W; [: f% j  ]1 Z  z                .gpio = DA850_USER_LED3,
& q! \$ W( I2 c% x; M                .name = "user_led3",  Z0 z9 ?" d( C( f. _
                .default_trigger = "default-on",+ B* R, _( M) {( F/ J
        }," F. q3 o" z( U: X* ^- v
};9 E1 c/ |4 T* w6 V
; Y$ R: S9 F6 T1 K  c; B, _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 _! P4 p# s0 s* e% ]. h        .leds = da850_evm_tl_leds,- D( x; A# q2 a& j2 j
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 s3 k( x) q1 `& S5 h3 B};! S" ]! q) ?1 p) @% R+ P
: X& O2 w% l: [$ x# P6 u
static void led_dev_release(struct device *dev)2 X( M$ }5 Q7 I% ]) X) p
{$ {4 f3 {$ V0 z
};$ r0 m( u3 q* A6 C

" H' F: a9 Z9 u9 l  Ustatic struct platform_device da850_evm_tl_leds_device = {
+ s, I6 ?- o7 q        .name                = "leds-gpio",
8 q  Z1 @! R/ v' h9 S        .id                = 1,& z3 N6 N2 d5 r0 z* t! f8 O
        .dev = {! c. ?; M& G( ~$ ^( g2 n( u* J
                .platform_data = &da850_evm_tl_leds_pdata,* _3 a+ n0 B: K( D; S" |; @
                .release = led_dev_release,
) m, Q! ~4 e- i- W        }* A! }# f* A$ N/ g
};
+ S: h, I! q* S+ {& Z1 G3 g$ v/ d3 a' C; }
static int __init led_platform_init(void)
7 w5 c% C# S5 M9 O$ I% y6 h6 f6 F{
& l7 L3 E  l2 a7 s        int ret;' b6 p* Y4 x( S4 t( C" b- m
#if 02 O. d6 N' E- T) S' P
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 P; L3 q5 T( o, w& K        if (ret)
, P( q+ g- P/ n6 L) }                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ r9 \- s3 L; {2 K6 m/ q6 D                                "%d\n", ret);5 M* P/ L8 o2 F( y6 K  g' Z
#endif+ [" t' {& R" x
        ret = platform_device_register(&da850_evm_tl_leds_device);
6 `% a" T5 x) B        if (ret)
/ ?4 [6 n+ a* A/ Q                pr_warning("Could not register som GPIO expander LEDS");
, {; i; o+ H" ~7 d        else- a4 {- h$ f; {7 X/ ^" i
                printk(KERN_INFO "LED register sucessful!\n");" c, ]1 M3 J6 b# U

- v' E9 H2 a% Z        return ret;  ]  v' m: m8 A: ^1 B) _
}
6 o6 G; A: m# r2 V) [. r; d4 u+ d. D- ^% c" z7 d( U8 J
static void __exit led_platform_exit(void)
- Q' M. w: X4 m7 O8 [{
- f/ e5 w1 S/ W# J        platform_device_unregister(&da850_evm_tl_leds_device);% U2 g& n0 `, w; g& S7 C
2 p$ u8 a+ o- G# v
        printk(KERN_INFO "LED unregister!\n");0 P/ }0 U9 ^  ~0 `4 V5 p/ r! \
}& f8 \" D- j5 }$ O, i2 t

0 r% x9 r7 {. ?  n1 }. x* Mmodule_init(led_platform_init);
" S  ]# I# Z2 Fmodule_exit(led_platform_exit);
  q7 H  u8 }& X; T, [# h; U; s5 h! w4 A$ y7 e
MODULE_DESCRIPTION("Led platform driver");- ]- W  p6 A4 k/ A
MODULE_AUTHOR("Tronlong");, }' I" T$ l$ N/ C
MODULE_LICENSE("GPL");
& H3 E1 W3 g! a/ r2 J/ b8 G+ A" t
* h" N6 l& z1 \7 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-24 01:18 , Processed in 0.036277 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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