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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. O0 F5 c0 C/ w7 A4 ]/ ~! ^) _$ j
#include <linux/init.h>. k" E. I5 B* `& _3 T- {4 [
#include <linux/module.h>
8 N' O$ B* o2 Z#include <linux/kernel.h>1 d5 y, Y7 [* }- b
#include <linux/types.h>
! g2 b3 ^" b: J# p#include <linux/gpio.h>
" y  d5 N: M! j+ E#include <linux/leds.h>
; Q: p$ t9 @$ Z8 f+ Y#include <linux/platform_device.h>
, z( M0 ^, x  m: g( H0 v( I
5 q, d6 `5 x& J* m#include <asm/mach-types.h>, `* r7 D6 N4 V
#include <asm/mach/arch.h>
5 P$ R% g% }) K#include <mach/da8xx.h>" h1 m! R' M& F7 z1 Q  m1 O
#include <mach/mux.h>
1 R* C( e6 y3 C9 O, C; M
, g! ]6 z- J8 I#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- z0 Q8 s, O: G$ l4 V. K- e1 p
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 i) ^* U& `# w" U9 _9 K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) d! m+ h. v4 e0 L$ O
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 g( f$ E6 Q% v1 l$ j+ z9 x' P
4 F: B* G$ L& ]8 R* I- }' q/* assign the tl som board LED-GPIOs*/9 a# c  {) R1 j6 v; M& t& f
static const short da850_evm_tl_user_led_pins[] = {
6 s. S0 C2 X8 X8 y( a        /* These pins are definition at <mach/mux.h> file */! C5 U, A. p- k% K. o
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 s) v# `; L+ `        -1) ?. u3 u9 l* ^/ ^$ c7 o
};
  C. b7 d4 l7 b7 I7 {3 \) b/ i5 o/ Z" G0 }2 f! \. w9 z( q
static struct gpio_led da850_evm_tl_leds[] = {1 g* w; k* j6 e8 F0 M: R1 e
        {
; q  P7 w# b2 F) _6 K0 U' B( I3 B                .active_low = 0,# e# t$ y$ j; R* s9 s! d% I8 `
                .gpio = DA850_USER_LED0,! N7 M0 o6 ^& p
                .name = "user_led0",. P7 w+ M( ^$ `; C& ]9 J1 w
                .default_trigger = "default-on",
- A1 v2 N8 F3 k        },9 e. E! }8 C2 O
        {! G5 U3 _) x0 b6 Y6 E) W2 b8 u
                .active_low = 0,- G- s* S1 p9 s: Y0 ]
                .gpio = DA850_USER_LED1,/ V! L8 L* W$ n& v
                .name = "user_led1",
# f/ \- ^# |8 M4 x' Y- W- g                .default_trigger = "default-on",8 f# w" Q' r7 {9 {0 r* f
        },
# f) r1 _5 z3 @6 s        {' G! V5 M' Y% z) ]
                .active_low = 0,' s# g; v+ ]7 K' Y) M+ C. w
                .gpio = DA850_USER_LED2,
  J( z. ?5 ~* \7 O9 @# S) j7 e" U                .name = "user_led2",$ q) N+ E5 g! T. c1 c6 _4 `
                .default_trigger = "default-on",+ Y& t+ V1 P% w$ n" O
        }," p4 M- A( e8 \" \$ k2 ?8 y; i8 j
        {
# K( Z& |/ [- a                .active_low = 0,* V- Y3 ~) K( v1 W/ }3 J/ G$ y
                .gpio = DA850_USER_LED3,
5 @. {4 Z4 Y7 N  R3 B/ I! L0 S  P                .name = "user_led3"," B# V( W. v4 u
                .default_trigger = "default-on",
$ v! h% X$ H  ~% v3 @        },( i3 O/ K7 _: _, j% u
};$ s( W( ]& z; [% e3 @

# _$ c% t- a- R; T& Xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 ^5 V5 B: s9 m/ |        .leds = da850_evm_tl_leds,
8 n6 ]6 l# }9 K" z6 E        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 y! Z7 T1 N) S8 ^};, O% I) Q) c% c
; W4 j. e/ w& u7 @4 P/ a
static void led_dev_release(struct device *dev)# l. h- r% T, \& a
{* C. @6 Q2 M1 r$ b3 @
};( o4 y( B6 ]. l

! w$ ?' z* \' M6 y; G" X) _" h( fstatic struct platform_device da850_evm_tl_leds_device = {
! @" ?. F- N: F; r: _        .name                = "leds-gpio",
3 |4 A5 Q& R4 [4 l: k        .id                = 1,9 m, O1 {4 d1 o+ J9 K
        .dev = {
$ Y! ~4 s9 H2 |" |8 U; {                .platform_data = &da850_evm_tl_leds_pdata,
( B6 X: {0 b9 z2 v) b2 M/ g                .release = led_dev_release,+ X' r& t  Y* L! V  h
        }
8 w  L# y9 h+ N1 h8 w};7 o( K: w+ N: _9 O

' E# f. d/ c3 q- o4 i' H4 b  hstatic int __init led_platform_init(void)3 ?8 ^  b- a2 G' J$ T9 {4 g
{. R$ p6 F$ _' Q& y, c$ ]
        int ret;
4 x  U; ^& ]3 x9 A#if 05 d4 N8 U- C4 I$ `
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* Y- ~" t1 K, _7 f( w, k" {, N        if (ret)4 l) m1 o( h$ I" M- j% B
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 K: X4 Y% \6 I$ v% k
                                "%d\n", ret);6 _& o. A1 a) S5 B1 C# o/ ]
#endif
9 f4 n+ Z7 F: A: m( B        ret = platform_device_register(&da850_evm_tl_leds_device);( {) m4 E' Q4 R$ i$ p7 Q
        if (ret)& Q$ u" f; g+ q+ w% S. |; Z1 z
                pr_warning("Could not register som GPIO expander LEDS");: g& m. c# L$ l
        else1 I6 v& n7 w1 i1 U8 p- s& b
                printk(KERN_INFO "LED register sucessful!\n");
5 p. q' {' b( x5 M5 O1 P) `- L+ N6 T3 G0 F
        return ret;
; b4 n7 d2 ?/ V( q9 o. F}% l2 X# t1 b5 J- E1 m5 l; W

# D) c9 G' _9 z$ q& [static void __exit led_platform_exit(void)3 r/ E$ m* H5 D! L- U, W& X9 g4 ?
{
+ K3 G  X* D, C* P        platform_device_unregister(&da850_evm_tl_leds_device);9 |$ d' `/ @, b  ~
  Y* }4 ^. {3 e( }5 K3 {
        printk(KERN_INFO "LED unregister!\n");
7 Q+ v$ V. W  a5 F! `$ j% Y}( a: z/ e1 ?' y+ g  ]* i1 f( t

& S+ r1 k# ?: ^: m: umodule_init(led_platform_init);
6 ~  `* b. R# T& @! ^! X  `" @( wmodule_exit(led_platform_exit);
1 G' n6 T6 q; |; b. j) k9 l6 m  K( n/ G1 P( g6 W
MODULE_DESCRIPTION("Led platform driver");
+ b* [. k5 G6 m3 N$ q' }MODULE_AUTHOR("Tronlong");0 j, Y/ ^2 ^# [7 b0 Q+ N
MODULE_LICENSE("GPL");( g) x2 b2 P6 _4 q( A

2 I" B* H  O: A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-23 07:11 , Processed in 0.057843 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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