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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; b2 w% }8 U2 K#include <linux/init.h>
6 h" n" ?! R  q1 {0 y( w: W5 \( ~#include <linux/module.h>) A2 q# j7 j+ C5 @" k& {( _" B1 D
#include <linux/kernel.h>
& o; o; d' L& @#include <linux/types.h>
% X0 m$ @6 Z' E6 i#include <linux/gpio.h>
( f% G2 x( G9 R7 N#include <linux/leds.h>6 S' j& Y( E, I& |7 U+ Q
#include <linux/platform_device.h>
# v: M  K' a* I! }, t& k0 G  l. S# e* h
#include <asm/mach-types.h>
: `; X, J. ?$ x. O# }" B9 F6 F& T#include <asm/mach/arch.h>$ b  a: s4 f  y0 B9 X
#include <mach/da8xx.h>, O5 w# w( I; d% b
#include <mach/mux.h>
. l# p* J0 K0 ]$ c* V! ]1 M  {& B$ p8 ^, O7 a6 h6 N$ ^
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! W# l* K5 u* v- ?#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) e% G9 h# Z% V4 \3 S#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& f5 D9 J- U: Z" }" {6 j
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 O8 @. K3 `5 v- b

! z1 _: B+ |1 S4 ?% H, B. V9 K/* assign the tl som board LED-GPIOs*/
3 v+ x0 \2 a+ a, \% e8 j' `static const short da850_evm_tl_user_led_pins[] = {" [6 m8 P' F8 V8 d, \- V
        /* These pins are definition at <mach/mux.h> file */, {' P) {1 q$ S9 H" p" q  W5 N8 F
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 m. e6 S5 d* X5 f" K0 H8 L! G        -1
* Y& f# `1 |" N7 m" H# x# T" o};
; Q; F8 S; `9 s! n0 M- J- K% ?
' Z0 z! z, \# B( m0 g! @9 e  E& dstatic struct gpio_led da850_evm_tl_leds[] = {6 G: v1 H4 |1 D0 `$ Z
        {2 U3 X( [6 z5 s" w% e* |
                .active_low = 0,$ U5 K* A) J+ q" c2 ^3 C/ J
                .gpio = DA850_USER_LED0,, L- {8 Q) t$ @
                .name = "user_led0",; f. Q- H3 O8 {5 N
                .default_trigger = "default-on",+ E* L0 f) ]- v- t$ h1 I& O
        },3 w5 S( a! P$ @7 v8 B+ a6 M( s; s
        {" ~8 v1 |' k' I4 m0 H: r8 s" \) e# t
                .active_low = 0,
* m' R) y* d1 B0 O6 J2 C                .gpio = DA850_USER_LED1,
" H) Z, n8 Q! [' U( J8 b9 K                .name = "user_led1",0 H9 t% i# ?# |# Q  ~* U) @' c0 x
                .default_trigger = "default-on",
) X) h8 K0 X* _$ U        },/ z; y, Y3 V/ p
        {
6 j8 J  j: r! L/ {( T                .active_low = 0,
5 S& n1 N5 f5 }8 S. p* h, E                .gpio = DA850_USER_LED2,1 E- T: p3 W1 e5 G7 R" k3 q
                .name = "user_led2",  o" s0 L8 L0 J( T- P* C
                .default_trigger = "default-on",
8 Z* ?, V9 C# J8 D5 _: E        },
7 A& Y. Y( F1 H0 U        {5 ?0 e1 o9 f4 t1 F3 t" H7 t
                .active_low = 0,- F; r; F  b! M$ F" O
                .gpio = DA850_USER_LED3,
1 c) y2 x; ?% W4 h/ l& h                .name = "user_led3",1 b7 w! ~( r$ h! x: v4 S
                .default_trigger = "default-on",
7 @, s/ O- g. W& Q        },
5 O' H" }* |- D* |$ n0 Z$ C* d1 s};
, E8 c6 {/ H) R; p' j# _1 A1 {" w6 G% d) r( Q1 r
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- Z* L: v) y  U/ m0 Y4 c        .leds = da850_evm_tl_leds,
: f% f  R( ?/ `; X        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ o% \# E  }" G
};6 W$ c  y/ A: o/ y% V9 P$ g
9 ~2 A% h: s6 o7 P
static void led_dev_release(struct device *dev)9 C5 x. r" W7 u
{
9 [" m' w: n% W- ^4 D" K; n  I};
9 a4 j( C' B$ G: }3 P7 m6 i* O
# b' S8 W) M- r- y* qstatic struct platform_device da850_evm_tl_leds_device = {6 z4 X6 Z% w, j
        .name                = "leds-gpio",
( p! i) s6 x5 L* a$ m$ d6 }        .id                = 1,
6 @$ b/ C# d, j$ b        .dev = {! E& v; E" ~. m0 s& [; P( b) T
                .platform_data = &da850_evm_tl_leds_pdata,0 G& P7 o: n0 B/ ^
                .release = led_dev_release," N6 T: g) F% N- D- f
        }
3 \3 _- }' r0 v/ P7 Z- j" u/ p6 a};8 x7 m# |+ _! B

4 M& @, K' N" ?; c; ystatic int __init led_platform_init(void)/ r# N. F% ~: V4 h2 h
{! X3 I6 d$ p3 X8 z* o* _+ y
        int ret;
) ?: f5 b3 J8 c" H: ]  C#if 0
+ j( ]' q, q) z5 R% X        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 H; O: H% m. V* i, b5 ~
        if (ret)2 |$ j+ }: r" h$ j; w
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ }# {& E6 L: w$ S3 |1 B' M& A7 `
                                "%d\n", ret);6 [+ B+ ]- ^. W/ _/ p
#endif. h# I+ [0 \2 x5 T+ F& M
        ret = platform_device_register(&da850_evm_tl_leds_device);0 @3 B+ i; x0 K4 b% J9 `- W
        if (ret)4 q' {; `- ]8 u. [' B. M
                pr_warning("Could not register som GPIO expander LEDS");
& R* _. G2 f# g2 n        else/ N+ A6 ^0 u" o- \. E
                printk(KERN_INFO "LED register sucessful!\n");
/ F! U. O+ O( I0 \$ i
* v& Z# ?2 l* H$ ~+ `+ ]        return ret;
2 I, M9 m& u. U7 L" v; k! X2 e- d}
/ n" k/ j8 R* v' j# w+ M2 Y/ B
3 |4 h6 l: S3 cstatic void __exit led_platform_exit(void)
% @1 a4 N5 k& p( E7 n4 c4 \{
7 s3 s3 f+ ?& B9 |        platform_device_unregister(&da850_evm_tl_leds_device);! V8 ]* p8 F. V% ?  Y( {

$ q7 [9 {. T5 H        printk(KERN_INFO "LED unregister!\n");
" r8 ?3 v: x# z) a  X& w}
: w( C! V! J# ]% G+ R' x% g. I8 K1 z
module_init(led_platform_init);4 R' k& }  z7 J. Q0 E- \0 t; W. _! h# q
module_exit(led_platform_exit);
  f5 y  U! c' ?8 S# f4 r
1 z2 C3 i" Z% l0 Z4 C- R4 c/ y* e1 [MODULE_DESCRIPTION("Led platform driver");
( g6 O, c. t  C7 U! VMODULE_AUTHOR("Tronlong");
: z, b/ L0 k' ]  zMODULE_LICENSE("GPL");
6 _- x7 Y3 F/ _: `9 N. h, Y* T! |! j. _) D$ ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-21 19:24 , Processed in 0.058084 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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