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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 V$ J1 M# y2 c- t( b, ~+ q! x) s
#include <linux/init.h>1 I) s3 Z% M  d% u
#include <linux/module.h>
% \- @6 w* G) {( p" f) O#include <linux/kernel.h>. r% q: r, ~6 K: L. f# \
#include <linux/types.h>
* y  q6 r$ c' ]1 f: \! K) e  P* u#include <linux/gpio.h>, F: M$ e) t9 A( o5 \* Q
#include <linux/leds.h>
1 D) I3 F: V8 i) A" k5 Y5 K8 i#include <linux/platform_device.h>  ?% \9 L9 Z$ y: G. j' i
' I- ]+ _6 m0 ?6 }
#include <asm/mach-types.h>% N- V! C( t: L/ d9 Z
#include <asm/mach/arch.h>
) }4 K9 h3 y1 ]+ X6 ]+ n#include <mach/da8xx.h>
; a* r( X4 J7 U#include <mach/mux.h>
  r& |* _7 s. n# R5 U6 F- e6 h8 h; h. D! P
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 H5 }$ A' ?) @1 F$ X5 `
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); N! q" V) k& C, v( J
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! Y! Y6 P: P2 T7 [0 c
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* g* u6 z5 f8 C. h& H# Y; U
, H& _/ i( m' U* B/ T
/* assign the tl som board LED-GPIOs*/
6 n) U1 F2 R3 ^9 M7 Xstatic const short da850_evm_tl_user_led_pins[] = {
! K9 _" e8 p& u/ B5 G        /* These pins are definition at <mach/mux.h> file */% r! O7 I- ?: g4 y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, f, {6 S" ?1 T( O
        -1; T3 ^0 r- @8 n; X# ^3 v; ]
};
: s  x( J7 X- r: s# q$ v% E9 L/ x: C0 f5 d+ ~) I4 M
static struct gpio_led da850_evm_tl_leds[] = {
# m$ L8 U$ l2 J- Z* |        {
8 H# M7 w9 k: W7 q& t5 X. e2 [                .active_low = 0,
  F7 L' Q' M, _; h8 p  L                .gpio = DA850_USER_LED0,
0 `2 S7 J) T; k3 ]4 H                .name = "user_led0",
1 K2 ]5 C3 m; m9 H                .default_trigger = "default-on",' f2 q) y+ I7 P- a: W4 E8 T+ b5 q
        },6 E: ]1 ^, K" [1 K3 t
        {5 B% K$ C4 |( h# `' t( s: ?
                .active_low = 0,: A7 P, H3 i$ n7 l1 R8 D, B
                .gpio = DA850_USER_LED1,
1 \$ t2 K: a% X6 Y! D  r8 r. O                .name = "user_led1",7 u( [0 l. B9 l) k
                .default_trigger = "default-on",
3 ^1 g5 |5 _3 B; `" s% r        },9 }: T0 w' V. K
        {- R# w* A1 u. G# \
                .active_low = 0,. `  o6 f6 O, a9 |! ~+ ^1 S4 K
                .gpio = DA850_USER_LED2,! p6 o% \0 W1 T- f' T
                .name = "user_led2",: m/ H+ o1 V' t/ N9 r, Y$ ^
                .default_trigger = "default-on",- [: I$ ]1 i0 j: C
        },
1 w* y4 N0 m7 _/ {        {2 I" \( g3 W4 D8 i3 U0 b
                .active_low = 0,7 v6 i8 s" @. Y* Q+ U
                .gpio = DA850_USER_LED3,
+ q2 x5 e+ [8 K8 m7 y                .name = "user_led3",
! k9 d* s; E7 X" p: `+ E! s- H                .default_trigger = "default-on",
3 ]8 q( u8 B3 J' j) b- L: O0 z$ [        },
5 {7 G, ^# c/ a" u! {0 [. s};3 O5 M# ]2 c/ L

2 R8 G7 l' E5 @; I( z/ fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 h2 q1 i" l. r  Q# q" v3 O        .leds = da850_evm_tl_leds,3 G$ {  Z* S. K' u( C+ F
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* _1 O) |9 s. S};
/ ?; P* L0 |8 y/ I* M
* R4 d* @4 R7 {3 R( X" Estatic void led_dev_release(struct device *dev)" I( w. s+ e# H* h, l- z
{
7 ]% Y* R& B( b; m2 v* P" y};& `; O( O/ }+ P- @# e' \

1 p: y7 i4 z6 c2 U8 _" J+ Kstatic struct platform_device da850_evm_tl_leds_device = {
  R& E# h+ V0 \& n& J        .name                = "leds-gpio",; A6 p( d4 e. p
        .id                = 1,
' V1 `  l8 [5 I% j  p  P0 m        .dev = {' d' ?7 T. v3 E3 A% y: i- _
                .platform_data = &da850_evm_tl_leds_pdata,- h0 N  {9 i+ w4 D' t1 @; p
                .release = led_dev_release,
; _4 s6 j5 b& l: k3 W        }* L. n0 @) H% B6 Y
};' L3 d2 x0 _  S. [

7 _  |* A( m' x) \5 j) ystatic int __init led_platform_init(void). @5 Y8 G8 @, V+ ^6 Z
{
- n3 X; C& c" g        int ret;; N: j5 ^- k! P5 L; o/ i
#if 0
6 U+ i0 I( e& ?0 F        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ Q, P6 b. m) p7 ~* I! a5 u% L+ p        if (ret)/ K/ H* g, @  f+ a% R
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 o3 L/ G5 i: ?                                "%d\n", ret);/ `1 v$ L; l1 F6 b
#endif  E7 Y( H$ n. C8 \- H! B
        ret = platform_device_register(&da850_evm_tl_leds_device);
# p1 a8 F" J( E1 @        if (ret)
' z$ ~+ R; S" z, \  l                pr_warning("Could not register som GPIO expander LEDS");# e% F# B; G: F) S
        else+ Z4 Z* s* s; ]1 |' H3 s# U7 P
                printk(KERN_INFO "LED register sucessful!\n");3 ]) [) h7 B0 U4 N

. J) Q: }9 i+ C% Q0 T+ q7 A        return ret;
8 s  @2 _9 K& O" n( v}9 c* s; K- S& e  a* {: F
$ I  ]9 `1 {5 R
static void __exit led_platform_exit(void)1 S2 M- t! w' F/ K, }
{
) n* D9 |/ ?, O! N- r        platform_device_unregister(&da850_evm_tl_leds_device);- F+ Y1 [5 U1 k! a
9 c: ^! p) q( Q9 E
        printk(KERN_INFO "LED unregister!\n");
' d, q) q+ d9 y9 e) I}
2 D' `! M: x0 W# E9 E- M
1 {* M. v* m" |1 E) xmodule_init(led_platform_init);
$ q! R' {: S2 n8 ]module_exit(led_platform_exit);1 _, w7 U8 `$ c
+ z7 ~% X! X7 Q' ?5 c
MODULE_DESCRIPTION("Led platform driver");
( ]% \4 o- v9 i% s: o5 O+ k, i" [MODULE_AUTHOR("Tronlong");7 i8 |9 J9 m8 ?
MODULE_LICENSE("GPL");
/ v  o. P% z6 H4 V0 D
: A+ d* ^' M7 X5 E  p7 I) a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-21 23:20 , Processed in 0.037961 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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