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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# j/ k7 u* C7 f; R& @  J5 G
#include <linux/init.h>( \6 ~* O7 V" M
#include <linux/module.h>8 n7 ]% y4 R. J/ Z+ P5 _
#include <linux/kernel.h>/ p' S' _  j4 t6 X/ e+ n
#include <linux/types.h>
+ n$ W; Z( b8 g# ~4 p#include <linux/gpio.h>
% `/ U3 p. A; V3 p- O2 Q7 V#include <linux/leds.h>
% d2 ^9 s' }1 o5 i9 a#include <linux/platform_device.h>$ n$ `( G* B/ q% {( R

/ z  \( k' k! Q7 z3 @#include <asm/mach-types.h>
+ s2 o, K" e# d/ [7 }#include <asm/mach/arch.h>
% T, V8 U* P2 a9 S- W7 g- u$ Y5 |#include <mach/da8xx.h>8 M- C! K% f# t! @0 ]& @6 }1 m
#include <mach/mux.h>
2 S/ f* C, C% N2 ^* s* {% g' e- ?  v& l. X3 Y* q2 s$ K
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 P0 f+ k9 X- k0 E#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ |- i& b& y+ X( `1 V1 \1 u1 Y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 i( }0 u  D+ j1 x#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% u' E6 k& M; T1 M0 p8 i$ Q3 ^; K8 J4 e. V2 ]; m2 z7 C
/* assign the tl som board LED-GPIOs*/
: ?' q$ o; J- W) K, S, cstatic const short da850_evm_tl_user_led_pins[] = {
0 ^9 `1 n  C& J        /* These pins are definition at <mach/mux.h> file */
' C& c; u6 m1 i& w* D( }* z$ ~9 |        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; p% L' ~2 u) O0 z
        -12 P2 x( Q2 f6 \& e+ a4 u9 ^
};0 {; m9 A5 h8 N6 ]) B& l9 x

  ^3 O1 m% [9 Q; ~2 N0 Dstatic struct gpio_led da850_evm_tl_leds[] = {
: E* q- y+ P* c/ x% u) o2 B        {
; B+ b& z, H0 A. e6 Q( J$ {/ S$ t# r                .active_low = 0,
5 Y# {& t9 @1 _                .gpio = DA850_USER_LED0,0 e  t$ h5 E* Q# d; }) ]3 f, C
                .name = "user_led0",  U9 ~, L+ D+ `) l4 S4 R  ^
                .default_trigger = "default-on",
6 Y. e% Y! B6 w5 e% z        },' N. q5 \8 r2 P: }
        {
8 g4 @* {3 D) _1 W  N% e                .active_low = 0,) r3 I7 B* L! H$ m9 V1 D
                .gpio = DA850_USER_LED1,
3 ^: d5 u0 Z9 K                .name = "user_led1"," e- x* N' `5 \( z' Q3 G& y
                .default_trigger = "default-on",
; q' D$ o' Z, D& e# D1 m, G2 q& {        },! L, X( }. \: E" T0 @
        {
0 f6 A5 k$ F- Y) D: W3 L1 j; d                .active_low = 0,$ p8 U+ B' Y8 w5 R
                .gpio = DA850_USER_LED2,
3 L7 ~3 e  g2 g* C! s% c# Q                .name = "user_led2",
7 d  u  s# \( Z                .default_trigger = "default-on",
( i; t) o7 H, Y* h0 O        },
, y5 i2 D% M4 H0 m5 K; Y- D        {
  x2 z4 W8 O2 B' f( k) S& e                .active_low = 0,& g; \' h! W, Y0 }/ k
                .gpio = DA850_USER_LED3,
* `" b/ t+ r$ K' @7 R                .name = "user_led3",* T( c1 p% h/ t8 w, \8 s9 V+ K
                .default_trigger = "default-on",% M. A2 w& k6 W
        },
' x" U3 z" X, |2 }7 I, h( u};
4 w+ W( ^( e3 B
+ r1 H' L$ \( I: U& b) L$ Ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 L' X2 I: u5 z+ |, G, U4 D+ ^        .leds = da850_evm_tl_leds," |% ?3 Z! B1 B) j/ I) e
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ a9 M* Y$ R' Q0 A" w
};
) T) r1 `/ Z+ L$ j1 v, i, ^* k8 b# i0 S% I' ^
static void led_dev_release(struct device *dev)) X( Q8 p9 U0 c
{
+ `1 M$ H& u' _0 l7 k& H};! u  d/ k$ |  f; ?  k! G" ?

3 a- i% M4 O: E/ p+ J! qstatic struct platform_device da850_evm_tl_leds_device = {: r! B8 M' U: C% a( R
        .name                = "leds-gpio",: h: a) ?5 ?2 w' B& ]; `6 s& t0 b0 d) @9 J
        .id                = 1,; P  W1 n: H5 F+ ^: h. [
        .dev = {& T2 }+ W4 ~! P! f7 W2 `) p- a
                .platform_data = &da850_evm_tl_leds_pdata,
; P( c+ Y8 n; Z                .release = led_dev_release,
9 d. @* u# R1 Y% W% K: ?8 M        }
% k# n# Z6 y7 V* H" W4 ^7 _$ i};
/ e2 \2 u1 z+ D6 b0 }
# I& _3 v5 ]$ ?9 dstatic int __init led_platform_init(void)+ F/ x6 `& K7 i+ l5 Z& K
{6 u( n2 O7 e$ p6 \; o
        int ret;
+ Q4 h4 M; s6 c7 k* Q#if 00 a& [5 Y5 p+ {$ V% d9 |" \
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# D# G) ^& t, d" ~/ v4 h0 ]8 \6 u& i        if (ret)0 {" l* ~0 ?& E' y+ g
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# X/ o% u1 e  N8 Q# e+ b. K$ P                                "%d\n", ret);
- ]4 R  b2 ]5 E0 L0 L#endif
! E5 Z4 |: s3 Q7 `4 t        ret = platform_device_register(&da850_evm_tl_leds_device);
( n: c* J; x7 p6 }, S6 U: a1 m        if (ret)3 J: b$ O, e9 {. z0 ^( M0 s
                pr_warning("Could not register som GPIO expander LEDS");% T5 j3 w& a. M5 r( W" b
        else
  O3 ]7 T( Y# I1 a0 U                printk(KERN_INFO "LED register sucessful!\n");
% a- q8 V" W! h: U# e) a5 r1 W; @3 {9 M. g
        return ret;3 b. C) c. k  j5 w
}; F/ e: J+ N0 V  ~

+ ~. M8 w- w$ B$ astatic void __exit led_platform_exit(void)
9 Y9 p1 u; Z" [$ L/ I! C/ \{
$ ^0 J3 r2 w4 y( f, q( y        platform_device_unregister(&da850_evm_tl_leds_device);
$ O- D3 A8 Q) w+ ~7 D) Z4 w4 r5 {
        printk(KERN_INFO "LED unregister!\n");
8 y. s) u7 _9 c; |8 d}
7 i. H$ ]. G1 ?& x
; x9 h; G3 r8 p$ kmodule_init(led_platform_init);: r. y( P8 X5 p/ F
module_exit(led_platform_exit);
0 ~7 u& a+ n: H/ w( Y2 n+ x; s: x/ R, |+ K5 P0 G; t: S
MODULE_DESCRIPTION("Led platform driver");
0 V3 G$ F5 Y; ]7 }; jMODULE_AUTHOR("Tronlong");" q: k4 u2 j; n: g5 }0 `
MODULE_LICENSE("GPL");
6 L5 e  k1 G4 o0 J# c' v% B* @
+ @5 N, Q9 v0 ]: m# s' ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-3 12:33 , Processed in 0.037622 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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