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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ u& f# I, t1 q0 o4 B#include <linux/init.h>
6 H4 k( p/ Z" U& G# ?5 E; `- a#include <linux/module.h>
/ |1 ?3 I3 {+ N8 e3 z#include <linux/kernel.h># j8 ^) C9 G: e
#include <linux/types.h>
2 J& v$ B# M5 L+ k& j! @#include <linux/gpio.h>
- N" R0 |& c8 M( R$ ]: T# m6 t) r#include <linux/leds.h>( [8 y* ], @/ Z/ J5 q, v2 v
#include <linux/platform_device.h>
  h- x& s, O" T1 V: ~- u9 B( M" E1 k1 X3 i) ^. c+ w
#include <asm/mach-types.h>
" L. A$ o: h& Q( B  Z% }/ O% r3 K#include <asm/mach/arch.h>
  |9 v9 E) `; }  f, L#include <mach/da8xx.h>
( e" J8 H7 M- n, q' C) {9 O#include <mach/mux.h>! R$ Q1 _/ S: I8 M

* _8 ]4 b; [4 i9 L6 o# j$ q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 g5 \. E5 T) n#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 y" U5 X1 X5 e4 e- ]* c
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ ?$ w* Q, l% V+ @0 h3 Q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% i1 N8 w4 ?% g% z/ b6 u! C5 W- b8 I: m) F8 y  w$ m5 }+ e
/* assign the tl som board LED-GPIOs*/
! Z1 ?8 I4 B- Jstatic const short da850_evm_tl_user_led_pins[] = {) m$ y# u+ n; H! B7 }% L9 T# h
        /* These pins are definition at <mach/mux.h> file */
; n( M3 R8 P5 R# x& s        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; V! D4 O: [  B6 P) i: p
        -1
# \- ^4 V5 ~$ u2 [8 j0 `};8 B6 b- B* P* d/ r7 u6 M$ O. l- K
: N4 h/ \+ P8 d! e! Z
static struct gpio_led da850_evm_tl_leds[] = {
9 _) @2 k/ C6 n& o1 ^. h        {/ @% Y8 v; I/ w
                .active_low = 0,6 v- z/ ^# H2 {" u
                .gpio = DA850_USER_LED0,/ q; z* ?4 Y4 Z& @  S. u& F* o
                .name = "user_led0",
# B0 u2 r  D5 \$ T                .default_trigger = "default-on",, e7 @$ r( W% D
        },- z4 }" [- w( y' h* x4 n4 D& p/ {! l
        {: F; m3 i* g/ b8 {0 h7 Q
                .active_low = 0,
+ c6 D# X6 O2 A2 D9 o                .gpio = DA850_USER_LED1,9 M) Z8 I; |3 P9 d6 y/ |, x/ g
                .name = "user_led1",$ V) _& i' x3 j; b9 ~
                .default_trigger = "default-on",3 I* w) Y+ b, V" u7 v
        },
- U2 u' I" i# _. H        {
$ I5 b; |0 r8 v$ W2 q9 J4 g1 C                .active_low = 0,0 Z2 }% R1 S- P% n
                .gpio = DA850_USER_LED2,
1 S# `, A, K2 P" i2 R                .name = "user_led2",1 T+ a4 S# c0 Y: F! U; \% w/ c
                .default_trigger = "default-on",1 q% P4 t" O2 X, Z: a
        },7 {. W/ B8 m: `  N% p0 p
        {
" N% Z# f3 a4 r9 p                .active_low = 0,9 u- R- P5 z; @4 F
                .gpio = DA850_USER_LED3,. [- {- y' C. }2 C  s; Y  `- H
                .name = "user_led3",) E. t, n5 Y  w& l, A* }0 H
                .default_trigger = "default-on",0 I7 a* L5 W! [, c& }2 Y
        }," Z3 q/ B3 [  [- n; b
};: O( P' X& l5 f/ a( H
& l0 J: I9 E/ }) q4 G, n! Z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! f/ F' [& X4 ?" W9 |        .leds = da850_evm_tl_leds,
# f; R, K. d4 S* I3 j" Y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 W* [1 A) t+ _; V* Y: k7 ?9 T};9 K, Q, B. j% \7 r, W* w  o  q! Z
; }. m: D* Y2 m. }" U
static void led_dev_release(struct device *dev)8 f  ~) c. n% C
{
: V) N- x1 r; f$ r3 x};- w0 W& A0 K0 Z- {) k

7 G$ Y5 D+ i& H+ i6 V' }( x& Ostatic struct platform_device da850_evm_tl_leds_device = {; _- I& C5 q  L7 _+ |9 a* c
        .name                = "leds-gpio",5 u9 A' R6 J+ E0 p8 ~" F) t
        .id                = 1,' S( Q; n9 K) H6 x. F0 K7 @5 P
        .dev = {: T( Z6 k7 ]5 N, k3 V4 ^
                .platform_data = &da850_evm_tl_leds_pdata,; A! [7 S3 i, a
                .release = led_dev_release,
$ {2 b% [8 B8 ]" o        }9 [2 U% d9 }# n+ E( N9 T6 @/ e
};5 A. P: l( t8 I

) N* P7 u/ Y4 cstatic int __init led_platform_init(void)* \3 R$ {' s2 ^* h
{' r. A" g. A1 i8 W6 ~
        int ret;
5 a" W: v6 n$ ?/ A#if 0
' |" A8 ~+ _! R" t, e2 }        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ r6 Y0 u3 r: i        if (ret)# [2 `3 d* c1 _+ U0 t& ]
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; M$ N0 t% j' _7 d+ I: Q                                "%d\n", ret);
) |' M2 l; p" ?3 F& R$ g/ q#endif4 L& g4 z/ I  Y1 F! y/ d
        ret = platform_device_register(&da850_evm_tl_leds_device);
5 d0 L( B# ^  D! `0 W. y& o        if (ret)( N4 X6 F# R7 T6 p
                pr_warning("Could not register som GPIO expander LEDS");+ r, g2 t8 e; n! B7 q
        else& b4 M8 [- ?, c- n0 f3 {# _6 F$ {% u
                printk(KERN_INFO "LED register sucessful!\n");/ \  L) ^2 ^; g" `

9 q. z- n' E' e8 S8 `% L5 _& c        return ret;$ W% P  K& j" K+ O0 }% |4 P( H7 l
}0 X( }5 j8 N! l. z& p5 J' X
( B2 h6 ]# a5 F) j
static void __exit led_platform_exit(void)
; w8 N. n2 j/ j{
7 s7 u! o6 _9 g        platform_device_unregister(&da850_evm_tl_leds_device);
: t/ w- }* I/ D2 g- j  n# V  G5 l; O  w
        printk(KERN_INFO "LED unregister!\n");
5 I# t9 U' S1 P6 l: Y1 O/ Y- p}
7 h, Q# O9 G1 O$ N1 q; y
0 A! t; U; {% C/ k6 R# B& y& gmodule_init(led_platform_init);- S5 M3 Z2 H' C. x7 W/ ~+ U( G
module_exit(led_platform_exit);
+ u- |0 x( j% {6 E: L- m: [- k( s7 g
MODULE_DESCRIPTION("Led platform driver");9 l0 o. r/ T8 O% }$ }* e
MODULE_AUTHOR("Tronlong");
* R) {: R- P& k6 T& I; F, T5 l2 S+ vMODULE_LICENSE("GPL");
& }; B; P/ O+ h* C$ d* }4 k; O4 M; k: [+ N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-28 10:51 , Processed in 0.039348 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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