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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; e( h$ x5 r4 o' {* C. v! c
#include <linux/init.h>2 C' Y6 E$ O+ G, h" s- S
#include <linux/module.h>
5 m5 ?3 J" A/ r: g4 b#include <linux/kernel.h>
- |! ?$ \2 a' ]4 Y#include <linux/types.h>
3 ~! y. w3 ?8 u; o3 d; u" _#include <linux/gpio.h>
1 @8 d( y" z( I' ^5 K0 S#include <linux/leds.h>
! @& g9 }1 X& C# ]9 _0 y#include <linux/platform_device.h>
5 T. W+ [# s% S" {1 _/ a4 E7 N/ a! |# [" u* v/ z* F( O( _! F  L3 ?
#include <asm/mach-types.h>
1 T6 s5 K# q9 `$ `#include <asm/mach/arch.h>
( l- N$ `0 ?. d  w4 Z/ e#include <mach/da8xx.h>' _6 ~' w# T- U' y8 B1 J/ w9 G
#include <mach/mux.h>
2 i" \% ^7 X8 s, ~) s/ S$ _) P8 @* R. |
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  B$ y+ _% [( @: e; y! k4 i/ c5 t& Q  c
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" t8 _: k4 D2 n1 R+ G" v* W* D#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 y8 a$ ~) l1 D- D3 @8 c#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 v2 K+ V( `( N2 A& U. E9 T5 o' b
9 B0 e, \0 P* D  d& d. Y/* assign the tl som board LED-GPIOs*/
1 O2 z* e. ]* i& D. S( v$ r8 W: Wstatic const short da850_evm_tl_user_led_pins[] = {
6 M0 }1 M* s/ F1 r. ?: Z        /* These pins are definition at <mach/mux.h> file */
# u( i! ^* Y% |' n3 n" R        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
! @+ _* J( a! N, U; }3 B+ S        -1
7 \' ?7 x4 W' D; t& z5 Z* _};
2 a5 E! @7 F: R  ?! L( c
$ n4 t, Z4 K/ Q& x3 V1 tstatic struct gpio_led da850_evm_tl_leds[] = {
' @& W2 [9 a% w. \6 G* M& Z        {
0 W2 H8 o; `  i2 k5 r! x                .active_low = 0,# e! R+ z- G5 p  j6 R% ~
                .gpio = DA850_USER_LED0,/ x# c9 Y. t0 A( C9 [
                .name = "user_led0",
0 E9 }# I" ~3 B3 ], n( F( H                .default_trigger = "default-on",! E: e9 l/ o* V) c
        },% F" O$ L. a. z3 }5 ?, z% i
        {4 x/ s8 H$ X, ^/ a* A
                .active_low = 0,1 n2 A$ U, t+ a
                .gpio = DA850_USER_LED1,
! h7 L  C6 Q! H5 S- M                .name = "user_led1",# d- k$ J6 ~+ E1 U
                .default_trigger = "default-on",* S. Z" P$ [7 j
        },8 v1 |/ K- F4 A/ x+ Z& u; n8 ^
        {3 R( P+ Z5 {& h6 P
                .active_low = 0,  D! X& S, V  l% I3 n7 O! L3 D
                .gpio = DA850_USER_LED2,0 q8 O7 T; W: s6 f2 Y& p* V2 o
                .name = "user_led2",3 U9 \, ^# I" H, X5 X0 g2 }- V
                .default_trigger = "default-on",, b7 `) J. M& n, N0 W2 h$ [
        },& o# ~* a$ J- c% u
        {- I* U6 r( Y' ]' {/ M0 M: K; A# T
                .active_low = 0,
- ^& O& n& p+ \; F- [                .gpio = DA850_USER_LED3,4 B7 m- `/ F3 V  R* g" Q
                .name = "user_led3",
  k, V+ L: b' m' b) U5 A5 z9 t                .default_trigger = "default-on",
* v3 N4 r. v! i        },2 ~+ G# J, W/ z1 w3 p5 ]4 r) }
};
: {/ ^9 R5 C* Z) q% L& X$ a
9 L  a. z7 m3 M# bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ x4 K% \4 r9 I        .leds = da850_evm_tl_leds,) U* T4 {/ a8 l  J) j. x- L. U
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 {4 ~! C( Q5 u% \! n" F' p};
9 U$ z! s5 R/ k$ m9 D7 c- P
" d; H, y/ a+ d9 Q9 Fstatic void led_dev_release(struct device *dev)
: C; T' l5 P  q{
. M6 ?1 _0 s6 i( {};
' X4 H2 p5 F3 a0 q' u8 I. r" A4 u. y2 ^* w3 k% L
static struct platform_device da850_evm_tl_leds_device = {
- g: Z$ o, T+ f        .name                = "leds-gpio",
  I+ k7 n+ x: g9 l3 G( S) D8 r( _        .id                = 1,3 }9 S" {  P. `5 X  v
        .dev = {6 z( i% F% f- i4 o1 ]
                .platform_data = &da850_evm_tl_leds_pdata,
- v; N# R7 w9 W% ]: d5 D) h                .release = led_dev_release,, z& p+ h0 n0 B9 p* u8 o1 c/ D% f
        }  D# n" l) U* p! O/ C
};
9 O5 @8 Y4 q8 W; \) G0 D6 x9 [& w9 ~  g$ Q6 P
static int __init led_platform_init(void)% S+ I# E3 _6 \$ p: y3 S  f+ e
{
( ]2 x, y) C+ ~, x+ p; M8 C7 M        int ret;
# W: p, Z) B3 m; h4 z5 h#if 0
2 f+ z: u: o2 Y2 `; J1 y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);8 u3 I$ S+ q1 W/ q
        if (ret)9 B3 q3 ?) I: L9 {8 _' c1 R
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 r1 V* u2 B; Y$ m; U                                "%d\n", ret);
- Q0 A- Z1 n5 ]1 I2 l+ k#endif5 v" w& s! u; ^9 @. Q0 x$ @1 \  \
        ret = platform_device_register(&da850_evm_tl_leds_device);- y' k7 ^, \6 p0 L
        if (ret)" `( T6 c! d8 s0 R+ k# y7 S5 G; i" k
                pr_warning("Could not register som GPIO expander LEDS");: p( C$ W* W+ ?5 S" u
        else9 L, j; W8 _$ F# F( h4 K' k7 T
                printk(KERN_INFO "LED register sucessful!\n");
2 Q$ D+ Q6 \/ ]1 g' R$ [6 y, E3 N  D
        return ret;
# D% u& v7 H  }# n7 i$ r! ?* u}
9 v! S- Q0 f$ o) b! P' I# ]+ o3 c1 a, o
  r+ w% q. L* q3 `8 D3 pstatic void __exit led_platform_exit(void)
* d6 h; z/ [' y1 C  S% O{
% F; V% Z; Y2 q$ P, o1 Y5 P        platform_device_unregister(&da850_evm_tl_leds_device);" a3 }, \6 }+ G: K) t2 z
- V6 \$ N+ o" _( R; L& U* ?+ q% z
        printk(KERN_INFO "LED unregister!\n");
+ _2 R" ~& f' n' y; v9 `) [}5 r& G. M! q7 U' O  Q$ K

* {4 R8 y4 i8 s9 |3 cmodule_init(led_platform_init);/ \; d, ~5 ^) m% z1 [7 Z
module_exit(led_platform_exit);
, @# ^9 _# ^, a) R( \: J- f- {  F
MODULE_DESCRIPTION("Led platform driver");! Y) G8 I1 b1 E0 k# F" W
MODULE_AUTHOR("Tronlong");
0 s: ~- e, ^$ U$ m" O  AMODULE_LICENSE("GPL");$ o" X7 ^% T6 J7 R0 ]

) J2 F1 P4 A+ z8 r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-25 09:39 , Processed in 0.040312 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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