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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% [3 @; C* v" _! W3 x$ F& o
#include <linux/init.h>
; i- K6 r+ b9 h' n0 O) o#include <linux/module.h>. e. K* p/ t2 Q! v* r
#include <linux/kernel.h>
& x: z' m5 k3 M/ }1 C# w#include <linux/types.h>
/ X3 ]9 \( I) b; C( Q! {) d#include <linux/gpio.h>" k( w5 n6 a( w; ?5 \
#include <linux/leds.h>+ |" d' J! H8 L8 o
#include <linux/platform_device.h>
3 z- W" z2 t9 v' z6 ?% i8 b: N% y
. E% C* a; _4 z( Q7 m; ?$ f. z#include <asm/mach-types.h>
  E! t6 b9 \, l8 X6 j8 o& k; N#include <asm/mach/arch.h>
" l' @7 ?/ e4 i' i% q2 \$ F#include <mach/da8xx.h>
$ X" T& N- _5 {& X, m& P2 z. {#include <mach/mux.h>/ j9 ?0 ^" _& L6 U

1 u3 ^4 F. }. a, X) A4 W- Y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& y5 ~: i/ a& \
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 f. b+ n' e! @2 {8 ~5 @, y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! M' ^7 r, T& c+ C( y/ ]/ V3 p9 @, b# ^#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! j: ^4 n. H3 V( q4 |5 o% ?* E5 C# u# _3 N5 n
/* assign the tl som board LED-GPIOs*/
& ]0 l6 D6 X7 q! G4 u2 @5 n5 ?; Jstatic const short da850_evm_tl_user_led_pins[] = {
5 K) Q4 V2 z# }2 {& k        /* These pins are definition at <mach/mux.h> file */
* P' H4 q$ v' [+ s/ {        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ O3 P+ m. r4 ^. j) ]& K! O% j        -1
. i/ E! q$ h  f};, g: R8 E* u3 R: K

5 ]% {# W. W7 s5 ?static struct gpio_led da850_evm_tl_leds[] = {6 M% o3 G0 K. {
        {
  ]7 U. `+ f. L* M4 e                .active_low = 0,  O3 ], m9 T( |4 u2 s  f2 K
                .gpio = DA850_USER_LED0,
6 p8 _( i) @! C7 f+ I# n+ d+ N8 L6 W# R                .name = "user_led0",
0 m$ }" W5 g  n* ~' I4 M                .default_trigger = "default-on",' ]- M. b9 w8 i
        },
: C* L8 T: ^1 u8 _7 }  B5 e        {, c& b* q" x/ K7 }  G  [
                .active_low = 0,4 `, ^7 p. k. q) O3 R$ ~% M; l$ V
                .gpio = DA850_USER_LED1,( o' _  L, @, Q
                .name = "user_led1",: `; Y+ @, R/ s1 ~  e$ E
                .default_trigger = "default-on",# k- N& [6 k+ y8 Z* q% A8 e
        },- V7 E& [1 u1 H* M
        {5 g- S/ ?! n" q- a" w
                .active_low = 0,5 V7 @3 b1 C$ u
                .gpio = DA850_USER_LED2,3 j1 d* s2 l" b* r
                .name = "user_led2",8 T5 U8 z) I+ `  x9 Y' t# B
                .default_trigger = "default-on",$ n6 P$ q! c5 F
        },7 [7 H- q7 |, x4 n
        {
- ?& ~1 v+ t9 A( L6 T/ k" I; ]! ]+ C                .active_low = 0,# I& ^+ b9 R3 H
                .gpio = DA850_USER_LED3,- b5 ^$ m, d: d4 a9 Z, H1 J# `9 z6 m
                .name = "user_led3",5 W1 u" S# B2 M$ z
                .default_trigger = "default-on",3 h& r. M: C7 T/ R4 D$ P
        }," S- E$ {* r7 u
};# Z* b6 s# k! k1 A! X" z

- l7 L, o6 k% F. O. x0 b$ qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 l( W; H- u3 ^+ s        .leds = da850_evm_tl_leds,9 x! g. p  {. y- M; A
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 u) x$ m' t# I  `2 Q/ U$ m6 @$ o};3 U; V* C% g. U- W: |4 {0 ]

% K  q, u+ P, ]0 a7 c& |$ \static void led_dev_release(struct device *dev). T- K$ X! C3 b4 U7 M7 J
{
! ^0 z1 w8 p. P/ e* N+ @* n};# F- o/ x4 L5 _% E  o
2 O( }$ k6 Q5 I0 I% x5 m
static struct platform_device da850_evm_tl_leds_device = {
% M' B+ g1 f! b, E  {        .name                = "leds-gpio",
1 p" \& C" p: ]/ E8 W  K# T        .id                = 1,
0 F6 e; s2 B/ L1 c0 `        .dev = {0 M. S- i! L' r* p+ M- B
                .platform_data = &da850_evm_tl_leds_pdata,
9 g' q8 u& d/ t4 C6 w                .release = led_dev_release,$ {3 H, X* \. R% m
        }
0 \' C5 @3 o3 k0 }0 h};8 l3 j7 {' O+ R/ J

8 Z  o: U4 j) G2 q% O8 wstatic int __init led_platform_init(void)
" g3 J5 X9 j. V% O7 q{8 u5 N* |9 K: v& m" s$ d( w
        int ret;
4 Q9 s5 @+ R5 \1 U3 `/ ]% C#if 0
: n, B% F$ J% V" q' M/ e) m: L! O        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ Z4 s/ s1 z  ^; D0 i5 w2 u        if (ret)- y( \" F8 x0 ?2 ~
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- F3 d( k& }: C                                "%d\n", ret);# @; ]" X! G# T' s
#endif, ?: T: {2 Z* e* h% C
        ret = platform_device_register(&da850_evm_tl_leds_device);$ [# @9 @" ?; T$ E6 b! r
        if (ret)  u! K% ^: M: z/ m$ S1 z
                pr_warning("Could not register som GPIO expander LEDS");
' B2 e0 ?7 `0 k/ }; @4 }        else
6 O0 @+ w9 A1 Y                printk(KERN_INFO "LED register sucessful!\n");. S0 G# {2 I+ `: B% p  U
3 ]/ u, T, V& ?- G  |; f7 w' ?
        return ret;
" d# _1 y6 ~2 r2 s( a' _}* r. L0 M# N, m5 m

. u2 z* [& M9 ~! @4 ?2 qstatic void __exit led_platform_exit(void)# L( ~# ]# q6 H* Z) k3 a  U# {
{
! [$ ]$ ~8 r- n4 ^3 O7 ~# }        platform_device_unregister(&da850_evm_tl_leds_device);
$ b3 N& p- E" z8 q$ Y
8 C/ j6 m5 G& U- `6 O        printk(KERN_INFO "LED unregister!\n");. _+ m( F8 ]" e7 A4 P" [0 A
}
1 J* M" Z2 j# L3 D
$ P) r! m/ ~  H7 fmodule_init(led_platform_init);
! @( {+ X& a% F2 @0 L  \module_exit(led_platform_exit);
( `* e! ~  z! b- k) t" [# Z5 P% {; A
7 n) a! G1 }+ `- JMODULE_DESCRIPTION("Led platform driver");
# P4 c2 n, v' L* QMODULE_AUTHOR("Tronlong");$ d" V# e! T% z, @& m4 N+ H: ^8 t
MODULE_LICENSE("GPL");
% `; X+ i4 z) {2 k0 x+ F8 D9 u6 F) f1 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-8 18:10 , Processed in 0.040196 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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