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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! m& L% L  u% K0 X  @3 Y- i( Y
#include <linux/init.h>$ [" J: O7 m! w
#include <linux/module.h>
! ]3 h: ?% H3 B: k  m3 s#include <linux/kernel.h>
) L6 g; l  a+ _' W% D#include <linux/types.h>
$ ^& |7 P! ?& m+ G7 x5 \' O" c#include <linux/gpio.h>
0 j" d$ X& M8 ^8 ]; H4 t! j- ]#include <linux/leds.h>8 b! o0 U  Y" c  i
#include <linux/platform_device.h>$ E, u4 v" ~  `- S$ ~6 z: Z' g
0 v( X9 Q/ ]2 x. {
#include <asm/mach-types.h>
! O5 o- V, m9 q' t# e9 ^$ c' \+ ]#include <asm/mach/arch.h>
, ^) t& j9 P7 @#include <mach/da8xx.h>
9 ]% k: ]2 U% p. q* d  K+ j/ d: X#include <mach/mux.h>8 B/ J8 S1 W* r: P* J3 x6 a7 \

1 p; W8 s, e9 \0 k( G#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); i2 \' k* x. w$ o0 l* B1 N. O; R
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" `$ h- J6 B. m& B; m#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 R+ L1 r: w# ^. W1 X, |
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 a( m5 |  l1 p9 L5 `% _
3 f: {7 R$ ]* b0 S7 d7 W7 W$ w/* assign the tl som board LED-GPIOs*/% Z" W( f( r( m$ a+ J) C' V6 r4 u
static const short da850_evm_tl_user_led_pins[] = {2 a9 H' S( [7 H. F, V
        /* These pins are definition at <mach/mux.h> file */
& P8 M, @! |5 R& Z' E2 k( O        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 C  I6 y: [2 E. C% y( u5 n
        -18 I' p% F9 t. l
};  d* K2 i, \& A5 V

8 I- H+ I+ p; `2 bstatic struct gpio_led da850_evm_tl_leds[] = {
8 U; d; c. q' g$ K9 @        {: e9 m7 e* M8 j" E+ E$ H
                .active_low = 0,
9 M4 b  A  U3 n/ K                .gpio = DA850_USER_LED0,3 S: b% E0 }( r6 J( t7 @
                .name = "user_led0",
- x- l1 `2 k1 J! Z6 R) M3 |                .default_trigger = "default-on",
1 a: E1 n; J+ v1 ~3 u$ i6 C        },/ v' |3 R9 F2 r" V5 e; C- m0 T
        {0 X. v" I8 Q8 m
                .active_low = 0,6 P# `/ r  A* p3 r: _4 w
                .gpio = DA850_USER_LED1,
9 P  t. n  X$ Q2 L! t2 p6 o                .name = "user_led1",* b6 ~6 C; F* Y6 K3 k1 z6 h
                .default_trigger = "default-on",
0 F+ b4 [/ f! k) E+ F        },/ p2 J% N8 A1 c+ e) }
        {
) B) e$ u/ ?) j8 ?                .active_low = 0,) r6 ?( Z! A- V2 t* R
                .gpio = DA850_USER_LED2,/ O+ @# `$ e" d  T' L
                .name = "user_led2",
2 [: @, F6 g0 R0 ~( g3 a                .default_trigger = "default-on",$ P  {5 K; G( N" o% Y: x! s( t
        },
( ^# a' |* x9 F/ d' e' H6 Q        {
- t6 K* C$ ]6 v" g                .active_low = 0,
7 C! L# Z5 Y2 X# Z                .gpio = DA850_USER_LED3,9 o6 [3 Y, e( j- v
                .name = "user_led3",
( Z. h" M- P) F' ?+ \* X                .default_trigger = "default-on",2 u; v  S# l1 w. Z! n6 H
        },
: d8 I" x2 {' L2 B4 g) ~/ i};8 S- B* b& b0 ^* z  g& Q% ]# A
* S; ]0 T* F, ~! A
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 Y9 ?" `( P' G/ s# O
        .leds = da850_evm_tl_leds,; `* L; G2 N9 a" @  X. |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 Q% j+ D2 \1 i% V1 k4 X};
- N; K5 r- p" }& v
& [  U. @: f- [) q6 w; s5 H  lstatic void led_dev_release(struct device *dev)
% F; E" x, ]) q2 q{$ t% \$ s, A" d7 Q
};
$ E/ E$ M) ?( x( B2 x7 l
; F3 h9 o4 D! Q# h. a  U9 ]9 r& g' ^static struct platform_device da850_evm_tl_leds_device = {/ |' e6 n6 x2 u! P  E
        .name                = "leds-gpio",
1 }7 ~9 z' ~: ]+ L* H9 q        .id                = 1,
# `5 Z" B( E2 C; `: v        .dev = {
+ X4 r7 D7 E" |                .platform_data = &da850_evm_tl_leds_pdata,  @: @* ~# c6 V1 b# I
                .release = led_dev_release,
! l, Z; h4 K+ ^# h4 |0 ?        }5 R3 h) S- v" }) X' h4 d. L5 A
};
, Q# e- J! f$ T1 N& D; d% l7 J8 k7 S, a7 X6 i- T+ y
static int __init led_platform_init(void)
/ T3 `# _% f, i, H+ A* Q{0 F, V0 Q7 J& A
        int ret;1 g/ r" _: M1 A/ X6 N3 u) e- O
#if 0
5 ~; S1 v" R$ R0 \4 C; k        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 q: i$ `" u) v  a8 ~1 v7 A/ J4 c        if (ret)
3 q6 L/ c; I* R                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 y7 G: C& `  [                                "%d\n", ret);6 Z) b: }4 M& c: x8 m* V7 h. e: _8 i
#endif
4 r# U4 P+ q% r" w( o- q. \$ o& H        ret = platform_device_register(&da850_evm_tl_leds_device);
  y# ]( \$ q) {* s4 L) {1 Z        if (ret)$ V0 q4 W$ k4 T1 _! j* C6 Q  G
                pr_warning("Could not register som GPIO expander LEDS");
; y5 C% _7 G# q% M        else
" \& S9 p; c0 k3 j6 m0 G# I                printk(KERN_INFO "LED register sucessful!\n");3 {% {! h% l) B0 Q9 R
5 v( Y! D+ a/ ^& T, D2 m" `" c
        return ret;
! ?9 l+ j9 X+ y' o' g) k' u}
, o: O$ D1 }4 W' C" q3 c8 ?% z. N! H
static void __exit led_platform_exit(void)- R: T4 P/ T" h+ S
{& |% [: x9 [1 C8 }
        platform_device_unregister(&da850_evm_tl_leds_device);
) C0 z* ?2 S# v) A1 u8 d5 q7 z  n+ f+ M1 w! _) N
        printk(KERN_INFO "LED unregister!\n");+ W) E5 f6 J; m: s# ^
}* ]" B: `- K( `0 L& ?

7 d' |7 n+ q- s8 r6 a8 S7 l$ X2 H# xmodule_init(led_platform_init);! ^# D# E% f" K! `
module_exit(led_platform_exit);- Q; g* n/ O' s

: E$ e, `/ |1 N. u2 D' ZMODULE_DESCRIPTION("Led platform driver");2 f8 k# J/ f9 }) {! r5 g
MODULE_AUTHOR("Tronlong");. O7 ~: [+ P) h$ s- a& a
MODULE_LICENSE("GPL");! i: F' ]8 a7 I# }9 z, n: E5 ?. D5 ?' ?

8 n/ Z, g+ k, y4 V+ q& R# O5 S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 20:06 , Processed in 0.040425 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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