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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 Y; ], [5 o: w! }3 i* h#include <linux/init.h>
1 M4 J8 u% T9 ]& D( Z2 {. |' V1 F1 P#include <linux/module.h>) A5 |+ Z& ]. W5 q- }1 C
#include <linux/kernel.h>
, @9 H- ~3 b6 F2 _( z3 B' M#include <linux/types.h>: B2 X/ d& @, l$ X2 {
#include <linux/gpio.h>
$ Y7 ^, [: H* d2 ^- \. b#include <linux/leds.h>
7 ~" ]1 p* a, E) D( A( {+ }2 v- M#include <linux/platform_device.h>
+ W- R+ \' i* D8 Y( h/ r! d
. T' P/ P7 u) b. W" h#include <asm/mach-types.h>
6 F( j) f" e: @#include <asm/mach/arch.h>% ]* Y) H5 @/ D3 T9 |
#include <mach/da8xx.h>
* w6 x: {2 n8 v2 U, K7 ~( S#include <mach/mux.h>
; W. l- y# d6 E3 v6 t/ J. P3 b, t+ m" j  ~. \; l, `0 p0 ~
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* ]9 U; |5 d+ {( g" T8 R3 x#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 Q- s' o7 f; k9 ~
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# B4 X& Y& z( u6 E#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' W0 S7 Y$ ~% t% G9 N& w% _9 A+ i
4 y/ r3 A& F3 u' \, t, D' e9 P/* assign the tl som board LED-GPIOs*/( I9 G% b& _, n* m# u
static const short da850_evm_tl_user_led_pins[] = {( n0 U0 j; \7 @! g; ?3 \8 E
        /* These pins are definition at <mach/mux.h> file */2 w- f: x. D" ~0 X. x
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,  k% \% p; H( [& S7 \1 k
        -18 C2 G% t$ V( ^* f$ I
};
7 X  Z9 |, x# E5 D3 h
. j- S% X& u0 n8 X" J) |static struct gpio_led da850_evm_tl_leds[] = {
, w' Q% U) B0 r: V        {
- j3 G4 }$ \1 T                .active_low = 0,) O9 a* f. j3 k! V3 y
                .gpio = DA850_USER_LED0,9 d: v6 }: j. U. ]
                .name = "user_led0",( X; x1 ]( i$ a
                .default_trigger = "default-on",
1 t) [; n5 ?4 L! O/ d, A# h        },# o7 H9 f6 I+ ~6 Q6 R0 _+ r# m
        {
0 O. N1 o5 {. z! x2 h5 X& U                .active_low = 0,# l2 H+ q4 b, n% l
                .gpio = DA850_USER_LED1,
$ q- O7 p, Z% J. v                .name = "user_led1",, ^8 t" Q3 a  ~
                .default_trigger = "default-on",2 u  U9 F' k9 q7 \' j5 q" E+ s) `
        },
$ F. z! ]; E2 q1 T! C        {0 x! Y; G8 G- `+ ]  s7 V
                .active_low = 0,
1 O5 P8 L3 X& s/ K" g( ?                .gpio = DA850_USER_LED2,% ]$ w9 c7 [+ L3 E) k
                .name = "user_led2",5 H. q3 W0 v9 A
                .default_trigger = "default-on",, ~/ e$ ^! ]; o) J6 @+ g3 Q
        },7 f# _, Y6 u: D6 ?3 U; `& u9 Z
        {
* @! ^! s6 Y0 m5 D7 @                .active_low = 0,7 z: q' Z+ n% }; z
                .gpio = DA850_USER_LED3,
+ }: M' T. @0 b                .name = "user_led3",
5 n! m7 N8 j3 x' H/ v6 h                .default_trigger = "default-on",
  ?2 ?  l. f" p, H1 Y1 t3 w. s        },6 ?/ s2 S% K% u  K- k
};# g. N1 K0 C5 j- h! Z3 |

0 ~# G$ z$ k8 V* _# X# X+ z0 Pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; J2 n3 v9 A! i0 {
        .leds = da850_evm_tl_leds,, P. S& W4 C+ L( q* D0 i: o
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( h0 Q4 d# t9 M# \- _
};/ _* X! ~9 s6 g% U1 a; i
- C* |3 E5 }, w
static void led_dev_release(struct device *dev)
, ~4 h, a- o5 e% ]% ]5 `{; [6 ~; t: G8 W+ w. p8 z0 J. w
};
" Z, L+ I' ^) E% ^% a- S1 {
4 M, I; H, s) S* o" V) ystatic struct platform_device da850_evm_tl_leds_device = {( n' E( q9 z) I
        .name                = "leds-gpio",8 r% `, S$ X5 l' H4 T
        .id                = 1,: P: o2 T* a1 s4 I) ?* q3 c
        .dev = {' Z# U9 `: H+ o, t9 y  v7 M
                .platform_data = &da850_evm_tl_leds_pdata,
% j) o, I8 i9 k- ~/ n, |                .release = led_dev_release,
; F/ t5 g: b+ p: W7 X5 l# `        }( B: C6 q( w3 B2 f+ h% D' N
};
8 r. v! O, X  _& b4 ]3 B2 M# e3 S3 O( M; A
static int __init led_platform_init(void)  k- u1 K& s$ f, g* g
{
0 t' f6 v+ U- v2 x1 E" T        int ret;
9 F$ f2 o1 E  Q- B1 H#if 02 q: D, Z) L; m3 }  Z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 ?0 f2 ?8 D0 H! B# O        if (ret)
# h7 t" b3 @& _& E                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  L/ c3 A/ H' ^# q8 w
                                "%d\n", ret);" G; M0 j- N" R; h" N
#endif% {* B. D+ b/ W* W* }; |0 i& R" b
        ret = platform_device_register(&da850_evm_tl_leds_device);' x6 B+ r; Y$ m
        if (ret)1 K( l& E( a; Z+ I: k
                pr_warning("Could not register som GPIO expander LEDS");
1 }+ X7 {( u2 y        else
& S& t+ d& t9 F' h! C9 |7 A8 ]                printk(KERN_INFO "LED register sucessful!\n");
" Q' M9 s* K2 Z$ ]/ `
7 \; c# C% z. C5 A  c$ n6 Y        return ret;
6 `+ n* M: E. [}
- F4 k! j# q! X; w% o* s$ @0 v' H- |  m# f! v# r
static void __exit led_platform_exit(void). k. U* ?* A9 L8 P& ]2 a6 G
{
# ^5 B' Q) V4 m& R: g8 x1 \        platform_device_unregister(&da850_evm_tl_leds_device);
' P2 ^# T# _1 ~' F( i& ]& ~
" q8 r) o$ h& [7 C+ g" H        printk(KERN_INFO "LED unregister!\n");3 T/ f7 U. R' k) `$ F3 S4 I+ h
}
* ~& b4 u- ?& h/ c2 B! E! ~, H9 H4 Q3 t/ ?
module_init(led_platform_init);
6 G1 c$ c6 h0 zmodule_exit(led_platform_exit);
# P: o* j; |$ h6 ]4 |1 }
! w( m; y" L0 S4 x! J0 w" u) e' ZMODULE_DESCRIPTION("Led platform driver");
6 J( N( r4 k) S2 \$ HMODULE_AUTHOR("Tronlong");
( e2 W- m5 B5 g$ V8 P' ?( pMODULE_LICENSE("GPL");7 O0 A! S' F) k8 o
) q3 Q) b/ e4 U& W4 x8 ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 06:49 , Processed in 0.039077 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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