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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 T5 E8 Z( R; Z- b+ `  y! f  Z
#include <linux/init.h>
+ z" J8 Q& a- I4 E#include <linux/module.h>7 u3 @9 R* L7 s6 \  l
#include <linux/kernel.h>
0 E! n# b9 d. k/ r, V8 g#include <linux/types.h>/ ^, a! Q) t5 h/ o, k
#include <linux/gpio.h>
# s$ @9 k% m* {#include <linux/leds.h>
  ?9 ?  K; O6 a! f, k) {; r5 A4 U#include <linux/platform_device.h>
  X6 S- `9 E1 h7 T' [& A
3 _/ ~1 M: M+ X) e1 V. \% N' J#include <asm/mach-types.h>& d% E7 {' Y; H* P+ L
#include <asm/mach/arch.h>
, W+ q% u: t, c% y( i/ d5 N#include <mach/da8xx.h>3 e3 P# Y1 X. F# C$ p/ ?
#include <mach/mux.h>
" P) e, h) ~# R9 K
+ d5 S: p8 i" A7 z: z- D% E) e#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- W2 d; O. C7 |3 Z& B! p* J
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 o1 Z, M7 |1 l5 l
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( X3 I6 u- }9 I' ]& ?, E1 k
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 j& _2 H% @3 T+ u- g8 s/ h& V$ x9 G& [( i5 _6 u( z" D
/* assign the tl som board LED-GPIOs*/
; r' K& w5 c6 _5 i; G2 [2 e8 xstatic const short da850_evm_tl_user_led_pins[] = {
# j7 O- i+ X8 A- _        /* These pins are definition at <mach/mux.h> file */5 b: ]0 ~! j0 K% O8 f- u% l
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 V9 n$ a" W+ h; {  t2 ]
        -1
% C) v4 K9 v8 H/ b  n};
6 U- ]* T8 I  A
3 A6 v% N, z3 d, ^4 y5 Q2 L( I" Qstatic struct gpio_led da850_evm_tl_leds[] = {: z; M0 v# p# t8 q% x7 R) B2 l
        {
) h2 q. _& B$ j% ^9 V! J                .active_low = 0," M$ Q- p: K1 R! S) N* C/ j8 y; A
                .gpio = DA850_USER_LED0,
; [: V# w$ B  {6 I3 D1 I5 T( Y                .name = "user_led0",' U, [/ u: ^9 c5 x- j
                .default_trigger = "default-on",5 T1 ~/ z% r! x6 P5 @5 @
        },4 ^7 o' {& N7 n9 C! M
        {
  v- K% `6 A; c. Z3 A5 ]& J9 F                .active_low = 0,
6 j6 h- [  H- |' C                .gpio = DA850_USER_LED1,9 m3 |7 d; c: W. j5 c! k" A0 m: w
                .name = "user_led1",- x. J, y$ @4 h1 ?. e
                .default_trigger = "default-on",* ^4 z* E9 O* {- ]
        },
6 v4 F6 \9 T1 E& i4 I5 X9 N        {
4 Y" w* W- a. T; x! g1 K                .active_low = 0,
2 K& [$ A4 d7 N2 x* Y  i                .gpio = DA850_USER_LED2,/ P4 [7 \, v8 `* q: A
                .name = "user_led2",
2 L; r# }4 Z4 ?- p+ l9 \& D; a                .default_trigger = "default-on",/ Q0 Q; z" Z4 b, J* ^- g8 a% |
        },
/ P  ~$ Z1 H3 m% b- n$ v  K7 ?        {
) e0 e+ k/ z: c3 C2 j- u8 p                .active_low = 0,; X) ^8 d; u- @# m6 b+ z
                .gpio = DA850_USER_LED3,
# p( c' q0 c0 Q1 v+ [                .name = "user_led3",
, C9 V, n5 f# L9 G$ t                .default_trigger = "default-on",5 x. I- c5 B! T' X
        },
/ ], \8 @0 e6 y4 j3 t4 x8 Y* f' F! J};
1 {: K1 p: o+ J+ c7 M1 E: a  n4 a8 A' G2 [& R; T( \: M% u
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 f" e; B% ^8 v0 K8 f
        .leds = da850_evm_tl_leds,% ?' C8 x. R0 E/ f+ @4 J8 q7 O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; A. O" S. i5 N( [7 o};/ a# f* s" J0 k) i) r
$ C8 A0 {7 Y, u8 N0 G! Q9 n
static void led_dev_release(struct device *dev)* E( O& C  G& D
{
" U* I  r/ l7 H; u: G; j6 T};
% I' x  ?6 U( s, `4 \) Q7 A% h. G
static struct platform_device da850_evm_tl_leds_device = {
/ M% R7 @- ^; O7 x        .name                = "leds-gpio",
0 Q- L/ j4 n  y- ~9 S' L+ V. d; y% B        .id                = 1,
3 A  f; a  Z, [- q; t        .dev = {
  B; f7 u9 i$ G4 r5 B                .platform_data = &da850_evm_tl_leds_pdata,
( S1 P+ j7 l9 o) F                .release = led_dev_release,
, }1 @) I) {; }3 w2 ^        }2 O: b7 k  o/ Q6 j; w
};$ n8 `: Y. X& ^+ n- o; G# N. t9 z

% b; [( A: ~- U4 b0 M% @9 fstatic int __init led_platform_init(void)1 @& x+ I2 f1 S3 ]3 R( T
{1 @& {- D7 H* M% u  K
        int ret;& G9 b$ S# M4 m, ^
#if 00 N# p) q" }5 C+ N# }/ l0 x; v
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 E- G( S* H# h) R3 R4 b
        if (ret)
% \( q5 M9 s' c6 N: M7 X( A! }. Z$ L                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ u. Z8 C- L$ c7 G7 p% {) x# y                                "%d\n", ret);
% \$ {1 g/ w6 g7 M5 u#endif
' F1 o# X+ E" `& y9 \# I7 V2 D        ret = platform_device_register(&da850_evm_tl_leds_device);
! }4 s" U" l) H5 T4 G        if (ret)
: A, r1 f" @8 V# Y                pr_warning("Could not register som GPIO expander LEDS");) _$ _( f) v& l: d1 G% I8 D" q
        else
5 F- ^7 ^9 M: S7 d                printk(KERN_INFO "LED register sucessful!\n");
. L! B- Z3 O8 U3 {$ s/ w5 I
* N' s4 r" g* J5 q0 X, ~: s1 }/ N        return ret;
; _6 G- `5 t) M$ a9 N+ H& T& m}
9 z$ v2 [2 Q- ^
' c; z, i7 L! B$ ^% x2 i3 u' ostatic void __exit led_platform_exit(void)
9 ^8 I' N: f$ P3 A. T: _{2 e  z: [) \* N# ?6 c0 D* R
        platform_device_unregister(&da850_evm_tl_leds_device);
) [$ r. b! s9 i; X4 A) D" g2 T$ \. B+ |" ]5 O- S
        printk(KERN_INFO "LED unregister!\n");
" y4 ]% D- ]; f+ @" K( s' F}" W# |& U1 u8 c$ d6 R" p
5 }# U# E& g" r0 z: r& {. |
module_init(led_platform_init);1 P5 U; S9 Q6 E( a) E( n4 G
module_exit(led_platform_exit);
9 P5 P; v7 g; N/ }# }! f8 o8 R% O0 w4 u* F: e5 n2 S. T  ^
MODULE_DESCRIPTION("Led platform driver");/ b1 w5 X2 F4 }9 E: a5 X
MODULE_AUTHOR("Tronlong");1 t" v# k& P% z: n$ _3 z. f
MODULE_LICENSE("GPL");' t7 T8 }) e) r5 `9 Y; [& p+ V1 e9 u
2 E/ E5 }/ K0 o. e+ W: c3 C9 m. W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-19 08:27 , Processed in 0.041046 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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