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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& A- \) b# Q' J% s6 \: Y) E
#include <linux/init.h>
, @5 e, b5 c9 W* J#include <linux/module.h>
7 a8 e' |& i& f' K0 H#include <linux/kernel.h>3 q" y4 |2 @- g5 R- Q
#include <linux/types.h>( w4 x8 i/ e9 C! ]% x( z
#include <linux/gpio.h>  d3 B+ l" v0 E% V) |0 \- ~, f
#include <linux/leds.h>
3 A4 G% [/ C" W) r6 w' j  x! \0 f#include <linux/platform_device.h>
: _) H/ y  n: m+ o4 i! z, v4 O7 H. {
#include <asm/mach-types.h>1 I9 G8 R* @9 |, R
#include <asm/mach/arch.h>
, P; M! z) T: M, z) l: W$ Y( }) W#include <mach/da8xx.h>
. T# B3 j1 q+ i$ D5 k% W9 I#include <mach/mux.h>
5 d! W9 R: D: t
& Z' w2 k4 P, ^( V# S# L% m4 S" ^#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& r! ?# f, [2 f; D1 x1 ~7 ~9 J#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 ?3 c. j7 S3 v* R9 f. T#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- P' b$ |. J6 f  O/ C& ]" a#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! F. ^# r+ ^; B- D: w# o% x
- `9 N+ {3 s4 A1 _. F( K
/* assign the tl som board LED-GPIOs*/4 M6 }1 J0 C6 b2 p2 y5 G
static const short da850_evm_tl_user_led_pins[] = {9 C  O- u9 n5 y( n& f
        /* These pins are definition at <mach/mux.h> file */8 w$ c+ Q. x  ~- }
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," o) @* x  B  |( ]' L' I# t& ~
        -14 u% l% x+ H3 D8 k
};
8 H0 c* y( p0 i- v4 r7 x5 V( r; L, H; S
4 U& Z* y6 f3 m  K' Ostatic struct gpio_led da850_evm_tl_leds[] = {
, F! M! ~. T9 k; L        {
8 F! o* E$ F" k: z3 L6 x                .active_low = 0,
; Y# E9 T0 s0 H) d4 @6 R. p                .gpio = DA850_USER_LED0,
; A6 V7 a( v' n8 P' P                .name = "user_led0",% r" ^& d% g0 M) G  t
                .default_trigger = "default-on",4 t. [( M+ [; W8 H
        },, F6 K/ P: }, R, q" B
        {
( u8 @" }- L- M; {* A- ~                .active_low = 0,
) J% J, F/ m0 S) Q. Y  q+ v                .gpio = DA850_USER_LED1,7 B8 p8 i. V. y4 l; E( c, C, _
                .name = "user_led1",
2 x# Q  V7 `! u# O" d6 c                .default_trigger = "default-on",' J% F' S2 W" M% \
        },
8 }9 G3 Q2 a4 D        {
! A) Z  v  C3 Y6 y6 X: r% ?# b                .active_low = 0,
. x( |, z( ?2 t# m                .gpio = DA850_USER_LED2,7 R2 E; \! F. s. y
                .name = "user_led2"," Z" u9 ^, @/ ]* J
                .default_trigger = "default-on",, k# N3 v* B2 o5 }1 y2 |, X. _
        },
/ {% I( W# }3 A# K0 q. I        {
* Q9 \( j2 _, ?* Z4 C  h8 g& R  C- g                .active_low = 0,
& H3 b% p. i5 N# M1 y) S                .gpio = DA850_USER_LED3,8 C1 R  c; d, o' K( f# h6 H
                .name = "user_led3",
- `% g2 }6 r4 K5 I$ g' Z                .default_trigger = "default-on",
5 p3 a9 R8 p# l' t0 R        },
* K( f* Z, l' o' n& A};
- _, e. {0 h6 E0 x
- Z7 ^4 p4 ~) o+ T6 F; Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! i' F7 F- J6 N) N, O$ l
        .leds = da850_evm_tl_leds,5 V8 I- A* f+ Y7 l
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 }6 z& x/ R8 _- G4 O( Y/ G* {" A
};8 g% N% U: G1 \6 F. n

# m8 |, h5 V$ S$ ~1 astatic void led_dev_release(struct device *dev)
( s% `, [: \: U: k6 H$ U- x{
3 R* m. c9 ?2 ~  y};
8 a9 ~" T: h  `  v  r0 l, l0 h- u0 K6 B% Z
static struct platform_device da850_evm_tl_leds_device = {0 j4 T$ H# o( [6 \: v# d
        .name                = "leds-gpio",
; z8 |0 q6 E0 B$ b! E# S% h        .id                = 1,& G' f0 _5 h8 d* J
        .dev = {: t# S9 D& [% t) T* ]& i
                .platform_data = &da850_evm_tl_leds_pdata,
1 u7 I- A$ l, |& t                .release = led_dev_release,2 J+ f' f' w: b
        }
) F& L8 f3 m: H( l2 g: v};
3 M" c, j/ L. M9 O/ \9 K
3 m8 B: B0 |5 n1 ~# jstatic int __init led_platform_init(void)
- C2 Y1 f. O1 c9 z( u" t{
7 d* I' z5 F* n* l  u4 [/ z0 f) b/ i4 ~        int ret;
* o' F, G! v8 K* C#if 00 f$ p4 b% @# P$ s
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 c1 \& v$ S* S/ d7 d- n
        if (ret)# p& b0 J; k. g. N' L7 N3 {$ ]
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% R+ F: j- B* D) M5 O7 }8 F8 z
                                "%d\n", ret);
; \, S& y- X7 |  U3 b/ q% ^#endif: o% D4 A+ ^! e1 R& o6 }2 E4 [
        ret = platform_device_register(&da850_evm_tl_leds_device);
  H$ o7 n  c' x( R& K' w        if (ret)# q/ J. @2 z7 `5 C% U3 u2 L
                pr_warning("Could not register som GPIO expander LEDS");& S+ D3 o* v  i9 y7 x7 f% k5 P
        else
  i9 C( J" q; [! q                printk(KERN_INFO "LED register sucessful!\n");5 B; n+ p; @' t7 X2 S1 x2 o$ C7 P

4 T- E" |  h% B: u        return ret;
: D, N: x, ?  A/ n3 z}
" \( {+ K8 w+ W3 R, F* o
# g2 Z4 h8 {& z- q! E& Rstatic void __exit led_platform_exit(void)
3 S  ]9 c$ P( `& [8 l{# h+ K: q9 ^: [0 H% [2 p
        platform_device_unregister(&da850_evm_tl_leds_device);
$ q+ Y* X, l9 T2 z) G2 z" ~: Z9 \) ]& Q+ b0 [2 j
        printk(KERN_INFO "LED unregister!\n");
( F1 m( O6 ]2 \+ w% W- z}+ j3 b, z' N& g$ g' |! t

. l% K4 w' C% B  ~+ P( |9 ]. Fmodule_init(led_platform_init);; F0 y2 f! a6 B' z
module_exit(led_platform_exit);
0 B4 d9 B, ], O' Y" @( l( _9 V
6 ]2 O- h% L" k  e; f- N# @- p1 pMODULE_DESCRIPTION("Led platform driver");
, c' |, q; t' W3 ?/ O4 @( R1 wMODULE_AUTHOR("Tronlong");
: f0 L0 q; g8 c5 R* c, x) E+ vMODULE_LICENSE("GPL");
3 W& E& L  N+ l' ^
1 H( P- s  U6 X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-9 06:27 , Processed in 0.038555 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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