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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. U4 Y1 X# t; n" v* b#include <linux/init.h>
/ ?( b6 y, P  L, {+ c#include <linux/module.h>
5 L' o: s( M' A' \#include <linux/kernel.h>9 |2 A7 g9 X' q9 w0 n9 {: z
#include <linux/types.h>2 n, ~8 M% y* R5 M3 Z& k! d: g
#include <linux/gpio.h>( t' i$ B0 C' G% z: |
#include <linux/leds.h>
3 B$ ]6 E/ M' @4 P+ l: Q4 m#include <linux/platform_device.h>- n! Q. P$ E3 i" T6 U) p
! a" X& X  _& ~' ^: H& d
#include <asm/mach-types.h>4 U& h: y6 ^9 e" B
#include <asm/mach/arch.h>- ?# }, w7 F: g5 Y& o1 K
#include <mach/da8xx.h>
* e% C1 ~# Y+ j0 p( |2 \#include <mach/mux.h>" w$ P! e" R* ]
" [) @/ C8 N$ J4 L+ T: ?
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 t" d0 Q( Z5 b* o2 W#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# R. T+ y* j1 X% E8 X
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) l. \7 U) v- B7 Z9 q% O6 l, I
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 F* E/ `: K- a& M
$ W* F8 e6 X  w  a$ O; o
/* assign the tl som board LED-GPIOs*/3 e- Z% S  [& R; t# w) d! p2 W
static const short da850_evm_tl_user_led_pins[] = {
$ w# _3 u1 F& d# @! f* L2 e        /* These pins are definition at <mach/mux.h> file */
- P# E3 ?$ P+ s  s( J- i        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 c# e) j- w5 D: H' t        -1( |9 _8 |5 c; r) Q& K
};9 _4 ?8 A! o+ T2 {) v. W- a
& i7 B, x2 B! S. x0 ^0 y# E( c: h
static struct gpio_led da850_evm_tl_leds[] = {9 a; [4 x3 C) z7 B0 ]: f
        {
9 e: v: D2 w4 p& ~- S: g3 I* G                .active_low = 0,
% G9 F. v4 o4 n4 ]8 o6 {                .gpio = DA850_USER_LED0,
5 E  H2 O2 H5 l0 j! u* [                .name = "user_led0",% c7 _( \7 ^4 [; x4 E' L1 n
                .default_trigger = "default-on",
& i5 u* F9 ]* M# q  ?, G- m        },
. ^& B( }* T* w9 Y        {0 w, O' M0 D4 n. t( f% |8 @' p' O
                .active_low = 0,
- x6 {- ^% o5 B3 q9 v                .gpio = DA850_USER_LED1,
9 R4 j- b; E' n% b$ `! F2 ~                .name = "user_led1",/ N2 M- ~, |9 |' w
                .default_trigger = "default-on",
9 Y: W# e7 b( G2 T7 v        }," G& V: w; y9 q, E
        {
: Q' C; H6 V+ J' ~! F. R6 S                .active_low = 0,
- s6 ~; R( q0 n* e# Y                .gpio = DA850_USER_LED2,
- l4 O! q' c! @3 Y  ?, g6 ^                .name = "user_led2",
5 D6 `, `' N4 u, o) K9 l$ Y                .default_trigger = "default-on",# w5 U1 H5 W5 R, |1 K2 R
        },2 T+ ?& |: }7 ~
        {# M$ G" B% s8 x3 t( d
                .active_low = 0,
0 N6 k4 I+ z# d; M  L                .gpio = DA850_USER_LED3,& z" o- U! x4 Q+ E) q1 @. Q
                .name = "user_led3",& W7 z) k( g  S" w! Y% F% v
                .default_trigger = "default-on",; U8 t6 A- m+ D2 r: c9 a8 P! W
        },
: g. f& [( U1 s1 f: ]  J$ Y+ ^};
5 e6 ~3 b$ `. s4 r7 |# F- {( f2 d: b* v3 X
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 D8 {% s9 O( U' D( j- A        .leds = da850_evm_tl_leds,7 p3 t: E0 \4 e! Z9 J1 [
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 q$ Y& _. p/ B" x6 |3 ?
};
' d' q5 G7 {1 ]3 c, M
8 `. k$ V  b9 T. w! D) [0 Xstatic void led_dev_release(struct device *dev)5 r( Z& C; z/ W8 c5 y$ n% E  p
{
$ ~7 \  _) e* Q1 X( M};
4 L4 S3 B. V1 I* N( Z' n: f5 a7 {6 }" O  e; k+ g& |% O4 b
static struct platform_device da850_evm_tl_leds_device = {; [3 F% i0 [0 t: x! n. W6 }- `
        .name                = "leds-gpio",3 ?& A2 |, y/ y0 o3 |9 ]3 a% u
        .id                = 1,
5 f. ]2 u3 {* h7 u6 |+ Y) c/ D        .dev = {# U% F  w8 ?- |" Y( [" ^, \$ O
                .platform_data = &da850_evm_tl_leds_pdata,0 _3 \  v. N6 B  u; w" p+ h4 d
                .release = led_dev_release,
; t7 D# h; k/ x5 m& L, l        }
0 f! i+ ^( \. P9 e; t# J};
! b; N& i  ^  j1 @3 _6 p7 D5 S  u- @6 j! s% B; j% E) S" A* ]  t: K/ }
static int __init led_platform_init(void)
9 i. @7 X, B0 P{
/ t! y& D" b" R6 r' @. k7 R) f. m        int ret;) x: g( I2 E' f; Z1 N1 P
#if 0+ e; U' k) s' K# @5 g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. [+ ]; q% N! c  ?        if (ret)
, I( J' x. }  ~+ k                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 o) b6 `% j; e& {
                                "%d\n", ret);$ q3 W" q8 s5 C9 G
#endif
7 _7 J2 n' N: n* O% l        ret = platform_device_register(&da850_evm_tl_leds_device);) |: s9 b9 c' B, d1 J7 s, o
        if (ret)/ ^3 H( S2 @- n$ q9 K- A
                pr_warning("Could not register som GPIO expander LEDS");
4 ]* A* Q; s( }3 Q$ j' M        else
$ h: x* v" j# g% _( D- p- y                printk(KERN_INFO "LED register sucessful!\n");7 V. U' I: G; Z

! \9 B5 t, X+ ?        return ret;$ I( ~. v/ M7 I8 U5 J
}; r5 u0 c) }1 j  Y: a- b& Q# S9 v
. t1 Z8 e( z: M: p4 P. @5 a
static void __exit led_platform_exit(void)
( m$ c. o3 y* N6 ^6 z{
. i/ K4 h% M  ]1 H7 K# R2 w$ P        platform_device_unregister(&da850_evm_tl_leds_device);1 A% a! v: o# s, G( f6 T0 Y

6 U8 d2 j6 u' U; ^0 y  d        printk(KERN_INFO "LED unregister!\n");2 `) H, Z5 d3 d" M" B3 Q, q$ q
}! J& p" t2 Q6 Q" T' a

. m+ z# u- |) bmodule_init(led_platform_init);
' J9 b+ {* k+ o2 t! U/ l0 a$ Imodule_exit(led_platform_exit);
+ f' m3 k, E0 i* e9 }0 l$ _+ K3 S/ o7 m$ J
MODULE_DESCRIPTION("Led platform driver");" O& I# ]/ C- b
MODULE_AUTHOR("Tronlong");. L6 a* L4 x* p( r7 l2 d
MODULE_LICENSE("GPL");: v1 h% b+ p' |9 B6 r, x/ k* P
4 O! h' e" H* e9 h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-30 07:20 , Processed in 0.041745 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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