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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% a6 |  Q4 `! O  u% u* _#include <linux/init.h>
- B0 `% h1 Z5 ]0 V#include <linux/module.h>
4 k9 H: u; `9 Z1 w#include <linux/kernel.h>
9 f. z' Q  p! _/ m#include <linux/types.h>
- G& J4 p- X% z8 y) e$ d2 q& U0 i#include <linux/gpio.h># U6 e  U, z9 R5 P% O9 B3 ~
#include <linux/leds.h>3 X( c: ^$ K* h, ]$ }
#include <linux/platform_device.h>6 T3 j0 |3 V* t( Q6 I- z% W: H
' Q; j, l5 D1 I
#include <asm/mach-types.h>
5 `, t# L! \1 l) Z#include <asm/mach/arch.h>
# D" t1 u1 V8 O$ L0 |0 j! A- K#include <mach/da8xx.h>0 {1 k9 Y  D8 n# x7 ^
#include <mach/mux.h>
  J3 s, @9 `4 u0 a, v& b, f8 E( v0 O
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 y! q3 R# A2 v/ @
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* N$ n8 b4 J( E; W#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): V4 t+ j4 p  s
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 ]9 {5 C7 p4 c9 U  V
1 R# h" Z  @* H* x# l% z
/* assign the tl som board LED-GPIOs*/
, _& {9 G! E; e6 \2 _$ Ustatic const short da850_evm_tl_user_led_pins[] = {
' K& Q- ~. f7 o7 X; Q        /* These pins are definition at <mach/mux.h> file */8 X( p. o& I4 d* l9 o1 O
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ i. h$ m* _4 W' Q% W        -1( n& v: K; C) w4 b+ }' n. f* l# S
};
% R+ A- b* Q: l  W( X, @7 t/ v' U7 _- }& M- n2 `
static struct gpio_led da850_evm_tl_leds[] = {
) g* f3 B. }0 _, j3 N        {
5 M% P7 ]* U4 N2 m# ]' h5 O                .active_low = 0,
% n0 T$ a4 {( h; B                .gpio = DA850_USER_LED0,3 K( U8 ~( z" d+ f! {, p. p! a& P* j
                .name = "user_led0",
/ c! `; b; i$ w) T                .default_trigger = "default-on",+ z: S- a; O5 J+ l7 C: m
        },
* M8 s( t# A- ]/ o; W* {  X" A. y; Q        {% f  [  A& I# c. K9 |
                .active_low = 0,' ^+ q2 p( t  M6 {. E, I5 Z
                .gpio = DA850_USER_LED1,4 l' d$ A- E3 k1 ?9 B+ Z6 w: }" b
                .name = "user_led1",& I4 B5 H3 i4 b3 U+ p7 b/ ?
                .default_trigger = "default-on",0 [. e6 v' N# n' q' r
        },, H; M/ V$ J% _
        {
- s; ]7 r/ A; h4 S5 Q5 K8 \                .active_low = 0,, C+ c7 e  x, D& Q4 Q9 {* i
                .gpio = DA850_USER_LED2,( Z7 A/ ^9 M! g2 O& q2 r
                .name = "user_led2",( e% z8 I7 c& y, k) u7 j! f* x
                .default_trigger = "default-on",
- O0 D+ k. v4 j/ S, \. y) e8 N        },
8 y% ]- k# ~( c! W) O" o        {, h1 L8 U0 f  K5 p& j, N' U
                .active_low = 0,
! B( p; q# ?2 d- L2 \2 m                .gpio = DA850_USER_LED3,
2 S- h5 L+ }" N8 N) [. ^! |+ T( S                .name = "user_led3",
3 G4 x# K" t0 W4 O                .default_trigger = "default-on",
5 `" A2 X) H( d; [1 J        },
+ Y) ]- O! L5 D" Z  P% X};
; N7 x# H9 N& B0 v
0 N! o: z& f! I8 y( X; M( sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 }: g1 Z! u! b$ r$ j        .leds = da850_evm_tl_leds,6 ]* d+ b$ {9 r/ L7 y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' ^1 ^! [+ s7 m0 ]9 E8 [2 e6 f& Z$ Z- L};
4 ?8 `: Z. w, |7 O- i4 C2 X8 }, e! V0 C  l5 j
static void led_dev_release(struct device *dev)
# J  N. b! |2 a: T{  T, }: ]5 x% w& q& J+ B! {, q
};
. N) F! p9 q  L  c& ?" }  g1 @. I* F; ^7 ~  z
static struct platform_device da850_evm_tl_leds_device = {
# f6 \! N  {; L& `$ \! I        .name                = "leds-gpio",: E4 A2 ^3 I7 a5 T9 q
        .id                = 1,
1 f0 V) n4 s9 [7 o1 v% Q        .dev = {: Y5 w' t6 X# q7 [
                .platform_data = &da850_evm_tl_leds_pdata,
+ i% w; F7 z3 I                .release = led_dev_release,
3 _  ?) _/ b: [& |+ N        }+ C0 r* z" v% k. H  D
};8 y. y+ V  D7 y- p
' d# U/ n# K+ U- f
static int __init led_platform_init(void)+ c, d8 e, m% [( L* c6 b
{6 z0 x3 `6 J, \. O& ?1 P
        int ret;# K( J1 Q0 p2 l: p* g  K% m
#if 0
$ L* j$ A8 [# e+ ~( b" P: |4 h/ b8 S' N        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( [* g6 J5 r, {9 S4 D0 g( @
        if (ret)
" ?- F4 K2 |  {) H6 g. t                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- |& p/ Z$ [# |. a                                "%d\n", ret);
( f7 w6 g. j% y1 w( z$ Q. @2 S! e#endif
0 p  i3 ?  _  J& M        ret = platform_device_register(&da850_evm_tl_leds_device);* ^: T' Q# \- n% w7 G# k
        if (ret)2 f* a7 H* X' m" y
                pr_warning("Could not register som GPIO expander LEDS");
. ?: `0 t3 l9 Z& f  \. o        else, E) A: s# q3 w
                printk(KERN_INFO "LED register sucessful!\n");8 e3 e% F% d1 j8 G" M

  R. \: c7 ^2 {0 A" B& g        return ret;
( M' x! }! D1 M5 ?+ D0 o}6 z# ~2 F1 T8 g# K

2 D* H  C" m8 k/ qstatic void __exit led_platform_exit(void): z7 x) g: k( f2 Z
{
; u$ l: u6 @: C; c( u        platform_device_unregister(&da850_evm_tl_leds_device);
9 n7 y+ V. S7 k; |+ P
* \+ r7 E6 S: Q. z- D/ r9 X+ S& f        printk(KERN_INFO "LED unregister!\n");; J$ g" d' g- H7 {0 d" W5 ^3 j
}
4 ^9 `3 a/ S4 A* b
! g# t2 \& J; M& Ymodule_init(led_platform_init);
2 |$ }* E% E1 w8 Y  w3 W; D9 Smodule_exit(led_platform_exit);- A1 l0 R0 p8 y! m2 z
! x1 Z3 k" }+ G6 w( K
MODULE_DESCRIPTION("Led platform driver");
! Y" I+ ^  D8 C" V) `2 @MODULE_AUTHOR("Tronlong");! W6 D9 C# {6 h' ^, K& ]* e$ k
MODULE_LICENSE("GPL");
, d9 k6 X1 J$ H9 P. `& D$ [2 N8 K* f3 \: z6 t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-11 10:02 , Processed in 0.038921 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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