程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 w; _* ?; B" ]* p#include <linux/init.h>
4 }1 Y- w! s9 u' E) r; e#include <linux/module.h>5 w/ }5 I' u7 z# q: O
#include <linux/kernel.h>
. o! C" `. ]& }! Q#include <linux/types.h>" B+ Z$ p2 C% }0 }, Z4 l& A- S$ h2 x$ h# Q
#include <linux/gpio.h>5 L: f# \, S0 ^% e/ w. _' L
#include <linux/leds.h>
0 C1 N) n# j# f3 r3 d#include <linux/platform_device.h>  h4 |7 |4 j% I
. @  H0 m  L  U) q! ~
#include <asm/mach-types.h>9 W4 f" G% m" O. ?3 C
#include <asm/mach/arch.h>
) C/ \, R0 f' ?2 v1 k+ @#include <mach/da8xx.h>
( H: j$ W0 y0 }. ^#include <mach/mux.h>
2 z! t; S7 o& [  Y1 w8 ?) d$ N- Q0 S" f0 z# K6 k7 y+ N
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' Y6 `% f+ R$ x+ F#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* ~( {5 X! Q* E! p& q$ y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 J" ?- ]1 h6 Z8 ^! m9 v* r
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" d5 V2 ^/ ?; B- W) @0 N# g6 a) O
3 _. B4 S" k0 z2 C9 Q( v2 U( d/* assign the tl som board LED-GPIOs*/, @9 o  C3 S; e* P# }
static const short da850_evm_tl_user_led_pins[] = {
* J1 ]$ c/ D' W- {4 Y( v        /* These pins are definition at <mach/mux.h> file */' J+ u( U" a+ J( y) O% `
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 |2 x" \- E: m
        -1
. E0 G, j% w& W3 r" c};
3 [) \- P& i4 {+ t$ s0 g0 L- e% T7 }$ k
static struct gpio_led da850_evm_tl_leds[] = {
0 m3 W" v* G: X: ]! L. A        {8 p! i3 G5 P- f: V2 M! m
                .active_low = 0,% k. L4 u4 O4 o! q
                .gpio = DA850_USER_LED0,
; V$ u5 ?3 b3 s9 S' a                .name = "user_led0",
. k8 N/ E, q7 X3 v2 Y                .default_trigger = "default-on",8 I6 [7 P0 O% l5 k9 Q
        },
5 _, T8 _& I' U* D; \. [/ B; A1 i9 h        {
9 o( X7 K  g) b5 d1 q7 A                .active_low = 0,2 ]: g; u- P5 N0 ^$ }2 c5 {$ T
                .gpio = DA850_USER_LED1,
" n) b2 y# f0 H6 `                .name = "user_led1",9 f9 p6 l4 O  N% o
                .default_trigger = "default-on",
1 c9 i5 m' t) T$ p        },8 O$ \" A4 E, I/ J% B
        {
, ~. k& c( k# \8 D( s2 ]                .active_low = 0,, @& |: t7 p. {% E3 H
                .gpio = DA850_USER_LED2,- d  o* q; k% s7 f2 I# I
                .name = "user_led2",6 P+ L' u  z( D7 a; h* a/ p9 t" ^) }
                .default_trigger = "default-on",! _+ X; |% M- ~+ m* H7 `+ K
        },  H' B9 S" {% _1 x# h* |
        {
& P( @# r! O9 J8 ?4 j, X                .active_low = 0,
0 ~& v  h6 O& @, ^2 p- A9 ]' N3 e                .gpio = DA850_USER_LED3,
+ M3 k' |' Q; P: y+ |9 C                .name = "user_led3",% C7 q+ r- ?3 n9 r3 S, n
                .default_trigger = "default-on"," x1 w5 ^, {5 p6 x$ s
        },# s, I# X0 a4 M/ @
};
1 n6 N# s3 |, N, R- |6 l. r1 r5 S3 C3 B! p
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 _! Q. L5 V8 R        .leds = da850_evm_tl_leds,1 ?3 I5 q4 j, M$ W1 V
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# a$ d, T0 {( H) g! j9 n  R' \};  q$ u/ c- @4 s) o& Y' ~) Y

& y7 `$ d6 N7 \/ d6 _  Lstatic void led_dev_release(struct device *dev)
, j1 ?8 v8 w: k$ a; U) s{
; K" }0 G2 X. O};
' Z/ [& h; P0 m3 }. l, u0 [) H* m# j) w& f
static struct platform_device da850_evm_tl_leds_device = {  `  [+ j6 o9 ?
        .name                = "leds-gpio",+ G/ u0 `2 f0 l* C2 J/ P2 E- v
        .id                = 1,1 i9 V$ e2 v7 h  O
        .dev = {3 `  o/ S9 N' }$ `. Y6 l
                .platform_data = &da850_evm_tl_leds_pdata,
# E5 `" [7 G8 A& E6 j1 ^4 W) v: c/ L                .release = led_dev_release,
- y9 Y$ t! S. z" D0 q8 P        }
* c) `" D2 j$ t  V% e- D* F};
9 {# J3 i/ o$ W/ T! X: I+ @, ^1 _. |" e8 P+ M3 h0 a3 A
static int __init led_platform_init(void)
- @: ?; q+ I7 G  c' f8 w{
1 ^, d+ p" l* J9 D  W        int ret;& L& _. Y9 S# p$ T7 A  p
#if 03 |4 O% M' [; c8 O, v, N" T5 `+ }' L
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  L; S5 @' N9 O0 `) S        if (ret)
* D; J; g6 @) y( M6 V( w; M                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; \9 j0 n1 b2 A+ ^/ H: c) y                                "%d\n", ret);
0 r/ q# q$ P  |. k0 t( p0 Q: u#endif+ X% u% w7 }, `9 K
        ret = platform_device_register(&da850_evm_tl_leds_device);
7 T: @' J/ d  p  T+ ]5 Q& l0 w5 k        if (ret)
% V( o! N! M0 j% W- Z- r, T' s6 c                pr_warning("Could not register som GPIO expander LEDS");( Q4 q( {$ o' E" g/ I
        else
1 r) @# O5 A$ I                printk(KERN_INFO "LED register sucessful!\n");
6 u# o& e; V' n; X1 s! q  J- {1 u6 {( S+ m4 p- r
        return ret;
/ Z5 Q2 H" w* G0 d}1 X$ o5 c% d% k& u1 G6 E7 e
9 C% N8 L) |: j; Q2 J6 [* b
static void __exit led_platform_exit(void)( `1 n1 \0 w3 ~. l" m0 C* g1 H, B) d
{3 N+ K  W9 ?( U5 u' D
        platform_device_unregister(&da850_evm_tl_leds_device);
2 H' L' F) F/ t5 p- J- r6 A0 G5 l8 R' |- x6 E  u/ O0 ]4 N1 ]
        printk(KERN_INFO "LED unregister!\n");' {5 L1 @: c5 [8 b8 }
}
# k: H5 v3 v; H' G1 x& ?/ ?" s: Z8 w8 u+ e
module_init(led_platform_init);
/ I2 I4 V  j- j3 `: l% E# L" ~module_exit(led_platform_exit);% b- E" o7 }; F/ K9 h4 @

; L/ z* ?- x$ u: M$ WMODULE_DESCRIPTION("Led platform driver");
& X1 G3 X& ^3 j4 f& r( L: ~6 fMODULE_AUTHOR("Tronlong");
, k, J% m7 [3 \4 I( d/ tMODULE_LICENSE("GPL");
2 u( @! m/ J, Q: z* E0 L
5 U) q$ x' w3 Y" z9 N+ D% T- X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-9 02:49 , Processed in 0.039228 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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