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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( e, q4 v3 O; f5 [
#include <linux/init.h>
0 }" D( i$ {5 \  B# A' U* |#include <linux/module.h>0 u4 ]1 L  g9 w# Z% M, i
#include <linux/kernel.h>
0 ^* R5 {4 a/ p" d  _0 l& e#include <linux/types.h>
6 n0 K# w2 a: x6 u( [- W0 L#include <linux/gpio.h>
' G8 z. N  f' ?#include <linux/leds.h>: Q  x$ v/ Q( q3 {
#include <linux/platform_device.h>
+ n" Y# q/ k# g* N7 t1 {3 \. K8 }; ?7 r6 K6 x8 ^4 s( @7 l
#include <asm/mach-types.h>, V6 f1 i' B( d
#include <asm/mach/arch.h>: y: a7 m: \) |
#include <mach/da8xx.h>6 m3 y6 ^) F# z6 D9 z& q
#include <mach/mux.h>1 E% d9 l( d9 L0 F0 [1 {4 F5 {: a
! p6 n6 y/ r' _) S8 ~. l
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ j' }6 ?& K: Z4 `- @& v#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 C3 J% I  ~" t. ~6 [#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 E% P: O" d! _: h#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ P7 d$ ~9 z9 H+ f% k

5 l, I' ^8 f8 X% p3 `/* assign the tl som board LED-GPIOs*/
6 `3 ^" N1 E0 I+ S) e% V5 c& d6 p, \static const short da850_evm_tl_user_led_pins[] = {
# e$ ~. Q( H; E/ [! O        /* These pins are definition at <mach/mux.h> file */
$ \) U. Q3 {+ m! k/ w9 x        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 v& i, V' i" G+ J' x- T  v5 K
        -1/ W/ H" {4 q/ u' Q3 d& v
};
2 f& E2 \( ^7 R
3 u. A5 V* u2 T" V  }static struct gpio_led da850_evm_tl_leds[] = {& ~* E2 B; ?$ P5 Y! m
        {$ ^3 y% {0 B) \
                .active_low = 0,
" x1 b9 y; x! S4 V                .gpio = DA850_USER_LED0," _( _( D& T. l' A- ~
                .name = "user_led0",
2 U6 V; @2 G- W; m9 h% z% ^7 ~                .default_trigger = "default-on",
* n" w' w( f! x* f6 v8 s5 k        },7 z" U* C# B5 I" D
        {0 {; l7 b8 \; t
                .active_low = 0,
$ I. [& c4 F3 B& q& Z                .gpio = DA850_USER_LED1,
/ H) k8 d- e) `" t- A* k# G& g' V                .name = "user_led1",* w/ n$ l6 T  s
                .default_trigger = "default-on",7 E2 \" @! {, r: D
        },/ M  ~7 m5 s0 t8 B4 u. G. V
        {: c0 L/ [+ u  Q' D8 W! l. y% Z
                .active_low = 0,
" M0 l+ n, B+ m' E                .gpio = DA850_USER_LED2,4 o" ~5 I" U  E; h2 h
                .name = "user_led2",! [$ i: D/ U3 p% w( r
                .default_trigger = "default-on"," O+ x, r/ f( X
        },
7 k9 h% g, r1 [7 m( K3 F+ y        {( V9 l' g$ u& R: h8 c) n
                .active_low = 0,
' K  R$ q* B$ W6 G$ R                .gpio = DA850_USER_LED3,
  Y) B6 X* g5 C3 {' K& x                .name = "user_led3",
# N: S+ P/ q/ x6 [                .default_trigger = "default-on",; h0 a- Q5 q3 k7 u: D8 ~
        },0 P; H4 j% H) K7 Q8 P) a( J2 X
};
5 y) f5 Q* F6 @2 x: ?# K2 U3 e, T! b1 j
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: Y' W3 E9 ]5 D2 G
        .leds = da850_evm_tl_leds,
3 }! f5 k( N: M9 n        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ h3 N: K- O  a8 K( |1 p% f
};
8 F5 w- R/ @' f
& e4 @' ?% h$ y6 ^% m2 \6 w2 H3 zstatic void led_dev_release(struct device *dev)
9 h+ T" h8 X: u! _' A- ^5 i{
7 F$ m/ [8 z4 U! m7 H};% X) @* k: A* ?# m
4 |4 g4 k. M1 o/ L& m$ @
static struct platform_device da850_evm_tl_leds_device = {
; c7 y- D3 e! x% D        .name                = "leds-gpio",
1 N7 l/ a$ P: o( q1 Q% f        .id                = 1,8 [1 M4 [( t: }% n8 D
        .dev = {
/ s+ u, w! P/ v2 x                .platform_data = &da850_evm_tl_leds_pdata,
! P4 u+ H) |3 F1 a& D" e- m                .release = led_dev_release,
7 B) F& {$ e0 ?5 r        }( {/ h$ {, t8 ~* ]- z' Z1 m
};
4 Q7 e7 N' Q2 u6 x) d
. H: t" Y3 t  h5 b' Fstatic int __init led_platform_init(void)( e/ U4 F5 A4 d8 b
{
- T9 r' R1 u/ l        int ret;! {9 T0 p& e4 l7 }. h2 I
#if 0
) r' a; W/ j" \6 p% T; \        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ s8 a' q5 l( s; F% r        if (ret)& C2 f! c; g) C! Q9 F; e. g% T
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 y2 y+ Y5 V: V% J                                "%d\n", ret);0 l* R. {6 t/ t1 k$ M
#endif) t8 ]+ ]% C$ t, E8 q- ~4 x
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 T" Q( X: J( u        if (ret): Y; n2 L6 V. O0 [% s1 B2 _2 l
                pr_warning("Could not register som GPIO expander LEDS");0 _" V* R  u- w$ Z
        else
& x# u& ]: X+ i; k- K                printk(KERN_INFO "LED register sucessful!\n");# X( @8 o/ o7 ?
# o) l* v  `: b/ T5 H  \. I* A# U( a
        return ret;
3 D& g: T( Y. Y+ ]$ F3 s' j}
) w' R8 K4 K7 C+ _& e/ r3 d
0 ?- E6 a4 O7 y" |/ astatic void __exit led_platform_exit(void)8 [( O0 q: q9 K) m. ^7 \
{
% w/ r) l# a. Y& }1 j- A        platform_device_unregister(&da850_evm_tl_leds_device);
- l9 z" C" r% @- }# U4 L2 R1 _/ ~5 y, l9 A( ~
        printk(KERN_INFO "LED unregister!\n");
% Y3 f6 z& z& U" U# M3 h. @  C}0 P! s& `% Y- o

7 ?- g6 E( e" l5 o  r& n  ^6 V: d5 xmodule_init(led_platform_init);& o7 q( Q! c: a, X. R$ L  U8 E& M. E
module_exit(led_platform_exit);
' p7 z9 `+ f# o( t) j  _' f2 u( i- b- ]5 r
MODULE_DESCRIPTION("Led platform driver");- h- O/ }2 c: y8 [' }6 B' ]# a
MODULE_AUTHOR("Tronlong");
( h% k7 p8 ~8 t" R# f( h/ _: r4 ]MODULE_LICENSE("GPL");
* p* j7 r: U! N' |( E2 @3 }; k$ a3 V% }, Z3 Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-3 17:16 , Processed in 0.039742 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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