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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& W# O2 l0 C7 G6 |7 l4 p#include <linux/init.h>9 A# f) `/ v& m6 O8 w6 f, M- c
#include <linux/module.h>9 U; d4 T1 N/ H( E
#include <linux/kernel.h>6 v6 Y2 V) _$ ]' H+ ^
#include <linux/types.h>
1 b$ h9 z0 S: J/ r, w5 y: p#include <linux/gpio.h>; o5 S9 k# v% k  j* ?5 `3 S
#include <linux/leds.h>
9 P+ Y! L/ }1 R) s1 ]* g! L3 A, b#include <linux/platform_device.h>) M( U% H' H; ?! L

! O/ W* [  s3 O* {6 }#include <asm/mach-types.h>% ~$ q- Q; R* L$ ~
#include <asm/mach/arch.h>
! z6 L/ [6 I( N1 W: ^7 P. }#include <mach/da8xx.h>( p6 O8 \4 P' {$ v$ J9 }# S( S
#include <mach/mux.h>
3 I8 [! b+ Z/ ^! K2 y* w1 b8 U" N- p8 D
) X  P, k# D: G3 X* Z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 I6 `3 Q/ q% u* f+ ?& a7 j& F#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ r- ~4 M- f% V; R
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 S4 @" Q$ y# e( R7 b
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( L. S9 ~9 p( o' d& e* r# n- F

1 Y! v0 P0 o( e# j) v/* assign the tl som board LED-GPIOs*/
5 [! S' Q1 X; a* vstatic const short da850_evm_tl_user_led_pins[] = {
+ l. H" n9 e! ~& J2 Y# l4 M( u/ ~        /* These pins are definition at <mach/mux.h> file */) v3 z# d: j7 P! p& c1 b5 ~* J
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( m$ ^8 R# d4 n
        -1" ~1 p; e  c5 f1 @( r& U* F
};
  K, l! _9 `$ H5 i! @) C* m
$ r* s# I8 T, k6 n: ]static struct gpio_led da850_evm_tl_leds[] = {. N: W7 i% G2 a9 L* c
        {8 y8 w3 c# a! K7 M: B$ P
                .active_low = 0,
) j! t- n' \" K+ Y- @9 }8 A                .gpio = DA850_USER_LED0,1 W# r5 E" ]( c% |1 d& }
                .name = "user_led0",0 l: j+ T- I2 x! _( `3 r
                .default_trigger = "default-on",
/ a% b$ q  [1 v9 X& F        },* a4 O/ N! R  s* m6 ]
        {# b& @) [4 x& a7 n3 S% p" _6 j1 B
                .active_low = 0,
1 w! R0 d2 {: R% U% I                .gpio = DA850_USER_LED1,
+ ?8 ~+ L( Z- F' R/ ?0 Q5 V2 S8 t                .name = "user_led1",9 i" `2 r9 N+ q) |( H6 y. |
                .default_trigger = "default-on",
0 Z. d8 E: [3 }5 q  {% G, Y" a        },$ X3 X; _0 I" d/ _3 _
        {6 X0 O, P% C# G' I& Z
                .active_low = 0,7 }2 B1 }# `& q
                .gpio = DA850_USER_LED2,9 r, d' X6 t! o% W
                .name = "user_led2",
1 D4 I$ z% S3 B1 H9 h. g( S* A3 r                .default_trigger = "default-on",
- k  B  w) n# R4 h: O7 Z+ _  ~7 d        },
0 `' i( E% H4 y3 q0 N        {
) I, M( f% G# T/ R- a5 ^                .active_low = 0,! R. T/ [& Q; H& O
                .gpio = DA850_USER_LED3,& I. @6 m3 q9 e( @& r1 O
                .name = "user_led3",
  u3 c, y( I. u2 x, z4 @/ d                .default_trigger = "default-on",: z+ |, r& o+ [
        },. t; F7 u) B# e6 Y1 F9 K% E2 G
};8 Y/ ^8 c2 W8 O' _
& u% Q7 Y" r3 u( u4 f: y/ H# T
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& e/ Z+ G0 g3 k4 R; y
        .leds = da850_evm_tl_leds,9 Y! g7 M/ g: v# `# ~4 s' W
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 M7 s# x" R% v2 L+ W
};) m$ T9 i( t, Q

( \8 _6 \$ _/ E0 E& a8 i5 V4 w: Ustatic void led_dev_release(struct device *dev)
! P" U2 l% d5 w; Z/ A, M! l4 f1 C  k{+ d: U4 m  O+ [6 G- b, h
};/ F6 ]. x) J7 I8 F% M! B8 R& [0 Q" V

0 I/ ?9 V/ s) g. D# }+ q' ?1 lstatic struct platform_device da850_evm_tl_leds_device = {
7 J( J' l5 l! P) x! N        .name                = "leds-gpio",
, V7 S" |8 p$ u        .id                = 1,8 }% t0 |0 \: o( t/ B
        .dev = {/ m8 ^& `2 X: j% @% Y
                .platform_data = &da850_evm_tl_leds_pdata,
! v+ L5 {/ F& w* U- t1 X                .release = led_dev_release,- \8 k# f7 k1 {4 l- O. N" z
        }
% i( _# I6 E+ M5 z};8 g6 L# z( U- |" G3 U9 C
+ y9 `# f* d# G8 Y0 h( `
static int __init led_platform_init(void)7 r3 _- p6 _2 M# ~- _$ t
{
6 T* [+ J, W2 `5 |% b% ?, d        int ret;
. C, m/ n, U8 p+ |8 }! n2 Y#if 03 {- b' L: f. z2 ^, p) L' Z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 M4 g8 O, @% z' Q/ Z" V
        if (ret)
' Z3 m! S( ^9 a" M+ d( O4 L                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( w/ x. _& p1 f1 x+ q% p( Y: u/ t. D                                "%d\n", ret);
6 X9 V4 R3 R+ Q1 {- ]# Q& v+ _& d#endif8 Q+ ~( w$ Y6 z  ^, i" V
        ret = platform_device_register(&da850_evm_tl_leds_device);: C! p& c% ?- A- {! F1 Z' m
        if (ret)
( C1 z/ h, P! `( k( u                pr_warning("Could not register som GPIO expander LEDS");9 R: h1 b; Q/ p. D
        else
8 C8 B: S2 ?9 ~2 y                printk(KERN_INFO "LED register sucessful!\n");
' I# i  l  i* J2 ^; }
0 m) j5 K+ e9 e! E3 s        return ret;# ~$ l1 G8 I" y2 u4 X3 @
}5 S8 T; l0 e6 M5 z! u

+ Y( S# M' {) l2 gstatic void __exit led_platform_exit(void)
: ?% _% k0 Z9 K/ V& Q5 _3 T{  o  B, r6 B6 v) E' G  J* `( l% {
        platform_device_unregister(&da850_evm_tl_leds_device);
4 H9 w+ J/ ~3 d% e
  p# Q, {& t3 h4 r- W2 [6 e        printk(KERN_INFO "LED unregister!\n");
  q; |' V1 w* E+ b}' O0 F' m8 e' _+ A9 U! V
0 z* U: t( |; M% E& T2 \4 a
module_init(led_platform_init);' s5 ]5 z+ S5 e
module_exit(led_platform_exit);
% ^, P; M; S+ V
# k: ^2 |" {2 z/ F1 z6 nMODULE_DESCRIPTION("Led platform driver");( ?9 `9 \7 d0 d3 b9 Z& U
MODULE_AUTHOR("Tronlong");9 n, t3 G1 Y$ ]8 P) \) m! a: k
MODULE_LICENSE("GPL");
0 }( z/ p& `3 |2 I9 m
% \7 Z) v# |( E1 \" O- }+ R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-1 04:23 , Processed in 0.040202 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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