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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 R8 V/ g/ O5 x1 V
#include <linux/init.h>4 Y3 L9 h' z% H6 U
#include <linux/module.h>
- V1 \( `: r2 @! h3 B#include <linux/kernel.h>" X3 z0 B4 S% Q; z; e$ W$ {
#include <linux/types.h>% h/ z8 H% C2 I( J, c7 {  f8 |6 n4 ]
#include <linux/gpio.h># Y  Q) `& P8 M
#include <linux/leds.h>. D# W, G( F! q& _
#include <linux/platform_device.h>, m, L" s! }; T1 u$ I
* h4 W# Y$ p/ c" w( z
#include <asm/mach-types.h>: L7 R8 y( F: p# L+ q/ f9 x! v
#include <asm/mach/arch.h>
2 D% T) {; W0 ?7 F1 X! M#include <mach/da8xx.h>2 k4 _% O2 B. E1 N
#include <mach/mux.h>
2 h8 L) S$ d& J) I9 s2 g
  @4 p) s5 @4 l! d: P3 n0 r, Y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 g, v9 w" g. K/ l& l4 W#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% Q' [4 d% f, E" z3 R: M/ @& j+ _
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 z6 q' {4 Y( f#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- a6 v3 J$ n& ^! B2 ^9 ]& c
1 t9 q1 O' G' K
/* assign the tl som board LED-GPIOs*/% z" [1 e8 h- ?. V
static const short da850_evm_tl_user_led_pins[] = {
" }- }; c9 m: E0 y3 `5 q! P        /* These pins are definition at <mach/mux.h> file */
, H1 G8 I- z. M# T0 I        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 l1 L2 `* x; k* l2 Y6 A5 Y        -14 f/ E8 E: V4 G" v% z8 h- H
};6 A, k, @7 }, K+ Y8 u9 g: u( _" g

# {3 g2 B% Y4 Ustatic struct gpio_led da850_evm_tl_leds[] = {5 W, X% e2 b1 O+ l
        {
+ N1 G, J% \/ @0 Z                .active_low = 0,7 G+ b/ \9 ]7 r* [0 p: J2 w
                .gpio = DA850_USER_LED0,
& O  C5 m. f' t; @                .name = "user_led0",# [0 {5 ^8 D, ?1 S+ O6 @: d. P3 G
                .default_trigger = "default-on",. k* @5 i, S+ X6 c5 h1 A+ w
        },* O) H( M) v% k9 U
        {
. q0 w7 A  Z/ k& F2 X# k6 m; B                .active_low = 0,
, l1 u3 z0 a4 ]6 S9 Z                .gpio = DA850_USER_LED1,
) g9 {8 S, g2 k9 \. G  A2 P# ~" e                .name = "user_led1",
. q; L- E/ g7 Z6 z  R                .default_trigger = "default-on",$ X" j! b$ A% h+ [9 @) G: M
        },
1 G  ^) w5 [; B: W% N        {, b6 v& f: H6 |, j
                .active_low = 0,
7 u1 K3 r- W8 p) I6 W: ~8 Y6 [% y                .gpio = DA850_USER_LED2,
) k1 `1 Y9 y2 z( B( k                .name = "user_led2",
- O- K9 k! U& J4 t% u) o8 p. d- d1 ~                .default_trigger = "default-on",* {& O- O5 `0 \, m
        },
* ]+ y  `* G( i. ]% q8 K$ S- g        {8 i- H2 j1 }0 c' _( N; d2 @! r& y
                .active_low = 0,3 V5 i  \4 l9 D! |% q
                .gpio = DA850_USER_LED3,1 {; e: d5 u* o/ q
                .name = "user_led3",
. Y& Y6 O" @9 T$ |. N5 \/ P+ R                .default_trigger = "default-on",4 h1 h- A1 y* H% B8 }, T
        },5 D% o( _+ r: K" w
};
& v# N- A+ S) F; B7 E! I0 V; H- @5 ~3 B# ^  O1 N- o3 k
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& j4 h8 U' b4 z& ?& u3 Z. X& U: R
        .leds = da850_evm_tl_leds,
% A2 C+ t8 q0 f% f( b/ b6 z, S        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" S3 g% P0 Z1 V+ P8 L' C) n};8 \- f4 S! X( i8 M8 I9 p& Z2 S  w. |

/ m) ~3 s( T+ [static void led_dev_release(struct device *dev)
+ Q. H2 Q; S1 ]* f  m{; T$ `3 g1 @" s4 L$ @8 W
};: |5 `$ ~8 U+ S9 B

5 G) h0 {+ q: a  Rstatic struct platform_device da850_evm_tl_leds_device = {
# H+ g8 ~% s# o& f+ n6 }5 k1 M# ]        .name                = "leds-gpio",
5 _( ]4 [# U" ?, Y0 Y7 p  z        .id                = 1,
. t  H- y: W' U        .dev = {& R* x$ l8 j# z4 i
                .platform_data = &da850_evm_tl_leds_pdata,
9 I2 r6 p. x# H8 k* @                .release = led_dev_release,
# t7 M# b1 V( T8 A1 ]        }
/ R  t, |, u# d; c4 w' L* v) t};
6 D8 q" z: P  b3 {: P
; \: o: d" K7 E7 O, d* p7 Qstatic int __init led_platform_init(void)0 K1 n) i4 p0 g! _, k. {: f; E" ]
{
# e, x  m! F2 F. j% C8 u8 I        int ret;0 x* p: `# S0 N0 O$ h6 f( z
#if 0
% L# V) z8 N# h        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" M& ]8 I- \3 |
        if (ret): m4 C5 y& z8 n2 i. {
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* z/ M0 r4 {4 b! M
                                "%d\n", ret);# E& ?: ~3 M& b, i' ~) C
#endif
6 y% P: ]8 W) z% C6 V, m        ret = platform_device_register(&da850_evm_tl_leds_device);7 e4 S/ x, Z" R  o; K
        if (ret)
( O; V: z( p0 g# c/ o4 m                pr_warning("Could not register som GPIO expander LEDS");) ^% c. d- d0 r: H. |
        else
7 X' `: ~- n7 p                printk(KERN_INFO "LED register sucessful!\n");
9 T9 B1 w% p+ i5 j9 ]
* O: i# _6 o+ U8 O        return ret;
4 w" f* H2 Z1 o% h}
$ d" S9 ]4 P6 ]6 @
* t( w! I/ i" y5 Wstatic void __exit led_platform_exit(void)3 z3 |7 p; _1 V/ W$ r/ f
{- i# Y7 U- T& l% V! Q: Y! G
        platform_device_unregister(&da850_evm_tl_leds_device);+ C9 X9 D4 z1 ?2 q
4 b/ y2 S9 [6 {, K4 h& j/ g: ?, ]
        printk(KERN_INFO "LED unregister!\n");" p+ s( v' R5 R
}
* i" u+ s  I6 \* N( i# j2 z; G0 P6 }+ A5 R/ o' j. h0 G- S
module_init(led_platform_init);
+ g7 {2 e( n9 `; h8 a3 |module_exit(led_platform_exit);. z1 I- E: u/ h

" a0 O4 H6 C1 CMODULE_DESCRIPTION("Led platform driver");
. k  e# i1 u5 N5 i0 W3 ^6 ^/ qMODULE_AUTHOR("Tronlong");  f) |4 A  R- \  E, [
MODULE_LICENSE("GPL");
$ s' l$ W* {& d7 `( z4 }4 y' ?% z+ ?5 }( U/ J+ l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-8 12:50 , Processed in 0.041813 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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