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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 j/ _8 g; m" o' B- e#include <linux/init.h>6 O+ `' ~' A# M! A4 R5 a
#include <linux/module.h>
( X; d3 ^7 k3 P0 d5 l! `#include <linux/kernel.h>
. ~# |6 L+ {  E5 X#include <linux/types.h>2 T1 z% I1 M2 i
#include <linux/gpio.h>
1 y. S' _, v$ G5 H; z8 X#include <linux/leds.h>
/ b2 Q  o7 r7 D6 ^#include <linux/platform_device.h>
0 q6 e* s- g5 J- Y% x% s! g$ N$ |. k8 ~! B5 G
#include <asm/mach-types.h># ]  P' r1 w/ h( g7 p. G; N( U! }
#include <asm/mach/arch.h>2 }$ I6 A8 O( c  }+ t- }, D
#include <mach/da8xx.h>' e5 O+ v3 _* t
#include <mach/mux.h>
9 }# q& R" W% w1 T5 y- N; s/ y5 S. p3 N/ M, p" ?+ u  T- ]4 t
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ M/ i+ J: Z/ t1 d: W
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 x, i' D- E* N) s5 @$ l3 d#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), ]/ K7 X) f2 Y6 B; j9 T
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 B! ^2 q0 L3 |" _! b( Q* s# I! o
8 }( \; b. K9 ?8 d8 Y3 o4 z
/* assign the tl som board LED-GPIOs*/
4 s# h' H7 d, I4 ?$ M' Cstatic const short da850_evm_tl_user_led_pins[] = {
; {5 Z5 v* N! v6 d6 _# V        /* These pins are definition at <mach/mux.h> file */
. l$ k* ~. _! T  x! V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) m$ M* z( w; A. i( s+ L* D        -1
6 |9 E$ m( h. K};* g% K( p9 E+ g% c
0 z7 ~; P5 h! m
static struct gpio_led da850_evm_tl_leds[] = {5 Q9 x+ E0 U. a4 P1 F3 V, _' {5 |
        {* r6 r% H( c* s" o2 S% E4 |
                .active_low = 0,7 {, T8 W% v- J9 P# ^2 \3 C  O
                .gpio = DA850_USER_LED0,3 D/ Q4 o; U+ X+ l' T
                .name = "user_led0",
4 l3 e* g( K& h" E+ j3 e                .default_trigger = "default-on",& E: e$ Q- ]" ^8 B2 G( n
        },
1 z2 k& u0 H' J) M6 n7 M        {
4 M5 m% \( E% T! ]4 d1 v                .active_low = 0,/ \3 u* K/ F0 t- p) ]) y4 W
                .gpio = DA850_USER_LED1,2 c) E2 e  ?# Y! y
                .name = "user_led1",* Q0 m. l; Y3 \  H1 g& h
                .default_trigger = "default-on",- A2 L2 T: \9 e; l3 h7 {
        },
; ~% [* X; S4 i7 ?5 P        {
# n9 |2 c, t; `* h5 X  j! O                .active_low = 0,; Z/ X) a+ M! C2 y% c
                .gpio = DA850_USER_LED2,# W  _+ E0 y6 P) Z
                .name = "user_led2",
- R: O0 L  N( e                .default_trigger = "default-on",
' Y) u. Z) h3 A; [" B* d9 _: Z        },
" q/ Z6 X' O: r+ A6 z        {
" W. H" E- r+ U/ R8 Y                .active_low = 0,4 X- I5 r' z' x/ r7 w; N
                .gpio = DA850_USER_LED3,
$ a" ~9 N+ n3 n. u7 ]                .name = "user_led3",# g& ~# B) W% t6 N& c+ Q; S; [: q
                .default_trigger = "default-on",
6 b% y# ]  V5 T' z        }," H5 \- t) w& L
};3 \: Y, |* ]5 y9 L
  [; m, i1 e1 z4 F3 d& T
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ L/ Q2 ]6 s. W9 q' D) x
        .leds = da850_evm_tl_leds,! S9 c- L1 C/ G: p7 k9 {4 D
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: F2 Q) A6 @* @};
2 w; F3 H6 A: _
4 F8 O  `( S! O3 Z1 j- bstatic void led_dev_release(struct device *dev)
% x) Z: `" c3 A8 W/ Z{2 p9 ?8 |, y7 U1 o) i
};
1 {" y9 |# Y" N  L9 [0 x
9 k$ B7 j" T" c9 Mstatic struct platform_device da850_evm_tl_leds_device = {
- _/ g7 P) Z" o/ y, y        .name                = "leds-gpio",
% z- B/ [2 I% R, T, E' i        .id                = 1,- g5 N' K: O$ x7 D& g
        .dev = {
) R3 A8 u0 U- H& w" U3 L                .platform_data = &da850_evm_tl_leds_pdata,1 V& o& l+ r- T# Q/ E0 F" h4 ^
                .release = led_dev_release," J+ f  m" R# r" ?
        }
* {" |, K: ~& r4 M5 v( n};7 j: M6 x( C3 t# X) l  r

4 t, t; R# @; @# r# sstatic int __init led_platform_init(void)$ K6 \  C) w1 v. m9 S
{
3 ]: a- ]5 ?3 Q/ V: A3 M        int ret;( F# d. |3 [6 Z- X
#if 0
' d! }- z7 Z8 C/ ~1 A& z, i        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( y: j- b8 t+ ?+ O: }
        if (ret)5 h  l1 R* z5 l# ^- o5 o# I1 y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 ?% w8 A) F2 I
                                "%d\n", ret);
9 Z. ~( }% I/ f( Z3 Q* ]#endif
! Y: t9 s$ f0 i3 e        ret = platform_device_register(&da850_evm_tl_leds_device);
7 G4 W/ W, D0 x4 H6 m9 n        if (ret)' [: ?/ e2 d% D' j% M
                pr_warning("Could not register som GPIO expander LEDS");
  Y0 T  b; J  B) r9 V8 m        else
! s& l( g& j' y& s# T                printk(KERN_INFO "LED register sucessful!\n");( a, P0 ]' U. D6 F; m( d% G/ D; t

% [* t$ u& U3 E" w8 s1 _* U7 Y4 o        return ret;. I! r# Q0 \9 E/ q) c
}( |, I9 a0 A1 D) ^! \9 c+ o" x
: I. Z' T7 f! z2 Q
static void __exit led_platform_exit(void)
( n- @  `! c1 @- n. E5 Q8 O# I{
# J1 U& x" g1 m9 S/ n        platform_device_unregister(&da850_evm_tl_leds_device);9 K3 ~- l: Y+ Z- Y

3 S3 J' S9 L: O6 ?9 w& i3 l        printk(KERN_INFO "LED unregister!\n");
- g/ z$ w0 F; y' m5 S}6 n1 l% s3 @1 P6 v- t

4 \. F3 U( a: L  C; A3 L- ^2 V1 W4 G) imodule_init(led_platform_init);
0 H$ H8 v9 Y! E# pmodule_exit(led_platform_exit);. P* @1 M0 N/ `, Y; A; g8 l
1 h6 K: }9 _, X
MODULE_DESCRIPTION("Led platform driver");- e, x- R# {* I3 @$ }* ^2 o
MODULE_AUTHOR("Tronlong");9 s- g1 T* _; t+ _9 I5 |. a
MODULE_LICENSE("GPL");
% h5 P  P9 z5 v7 l; M! K5 l" g. X- w5 _& o- m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 04:54 , Processed in 0.043365 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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