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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' y# p2 i0 h  X2 p$ i2 v#include <linux/init.h>
% |$ S' ~1 Q" b0 Q! Z#include <linux/module.h>
% I/ n. H; v7 ?, \/ S#include <linux/kernel.h>
! G3 s& b" ^; }% E#include <linux/types.h>- l( o) C, ?9 b
#include <linux/gpio.h>
  _  w9 x/ _" ?#include <linux/leds.h>+ n4 X3 ^6 M7 B) L' C3 [
#include <linux/platform_device.h>9 }/ y- D/ o' n0 A

5 a3 |) o& |+ g#include <asm/mach-types.h>: Q/ F  K$ L0 O- v; n2 w
#include <asm/mach/arch.h>
* G2 g' x( R* c- M#include <mach/da8xx.h>8 o$ {) ]4 M  y' `
#include <mach/mux.h>
# y' r  D5 a* T% p7 s/ S
+ [0 L( m/ L6 B. F; s$ ^#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( i: d5 A6 e6 |6 Z, q" B9 ]#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, J0 p2 [  R$ `% j7 P/ P( D#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
3 T9 s* T6 f5 Q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 y6 u. X9 `1 e* _& b# l
4 g, F7 e" S! c$ Q. A
/* assign the tl som board LED-GPIOs*/
( P# F, O2 K$ n/ G  ~4 d/ ~7 Istatic const short da850_evm_tl_user_led_pins[] = {
  K7 i/ Z- n5 a& I- f+ \/ @% A        /* These pins are definition at <mach/mux.h> file */
8 B% R1 W! t* W0 a5 H2 {        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, z0 `$ J1 I& g& ?- A" g
        -1
6 V" U, B/ z- U/ E6 D};  V1 f3 Y- e- T* u5 q

! V$ I2 p  N* |$ v' q& Istatic struct gpio_led da850_evm_tl_leds[] = {% H; H/ C8 _' h, X
        {
4 |; r/ C" F' s8 F8 I                .active_low = 0,
( \. t% M0 T* _7 W& o4 u                .gpio = DA850_USER_LED0,
' m. b# [; N0 N$ {+ z) N8 [9 \                .name = "user_led0",
1 D& o- K, v7 `+ U8 \3 t  a                .default_trigger = "default-on",6 n0 ]) ^' _/ h2 i& b, {
        },: Z0 ?, d. _6 t+ b
        {* O: F, D. n$ W+ o
                .active_low = 0,& i) n8 E- Z+ _" w
                .gpio = DA850_USER_LED1,% F% y7 {/ U# f1 s
                .name = "user_led1",- ~& b/ d4 \/ J
                .default_trigger = "default-on",
' q7 J/ Q" H) @: O$ o        },
& i- ~, H8 e. a        {
" g" h8 l& u. n" f: U                .active_low = 0,0 z! j) X( U- m  S0 h
                .gpio = DA850_USER_LED2,5 v! H1 a6 ]! A# ~/ D
                .name = "user_led2",
9 D2 o" _! u. a7 L, w) |! a                .default_trigger = "default-on",
, c1 W4 P( X% }6 p3 O. J        },
0 S+ |# s: a/ g, h3 C% W        {% ^: r. L  H* b6 x
                .active_low = 0,0 A" ?7 \0 Z( G
                .gpio = DA850_USER_LED3,+ s* ~1 u4 w) r6 {
                .name = "user_led3",
- Q. [: C0 k% i$ R5 ]                .default_trigger = "default-on",
1 s; c: Z, v; m        },0 j3 c/ i0 I, k1 l
};% x# B6 r5 I& T3 e3 o. }' ]
" k! p& }$ i+ V% \
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 G2 {9 {2 y3 A1 I3 }1 K1 ^        .leds = da850_evm_tl_leds,
& T+ v# U* u' w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- ^) B0 h7 |$ O. U5 D. G* s};
1 K" ~- h* N- N0 k& [
  |) Z0 L7 S! s8 ^1 t& H6 dstatic void led_dev_release(struct device *dev)
* x% {: l' Z! k) K2 O{
! n) H" v1 Y4 V. x. [};
5 l+ B0 y& I) b. k* ]" h/ W$ T' M: C: }
static struct platform_device da850_evm_tl_leds_device = {+ c8 J4 j( B- s" h0 u: @8 v
        .name                = "leds-gpio",0 b5 H' o" E) }$ P, k0 ?# s
        .id                = 1,- C/ c8 F7 ]* i# z: N
        .dev = {: x( u8 M) N8 ^% N
                .platform_data = &da850_evm_tl_leds_pdata,: u* Y( w" S7 s# g
                .release = led_dev_release,9 H: T. i. A) Q4 s  y
        }
1 v; w; X4 h8 b7 ~1 D& Y};
( }/ h) q+ J1 D" m# x! v3 ^$ D5 n$ b- ?8 W
static int __init led_platform_init(void)
% T5 e1 D2 n2 R; W1 l- P1 i/ {; |) [{
0 y, }8 C* C/ `        int ret;
: k0 `3 [9 O! f& Z#if 0- L5 J( u: S' B
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 I0 r# C( G4 j! R! `8 D5 D        if (ret)
; M/ h3 f7 ^  F5 L8 z0 |5 w                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" e2 {' T8 H1 e/ B! {
                                "%d\n", ret);# T* d# ]  u7 m0 t
#endif1 a. }& g  i3 D) i, X
        ret = platform_device_register(&da850_evm_tl_leds_device);
* q& Q" p9 l- K! Q' f        if (ret)9 I" d1 F8 x; w3 E
                pr_warning("Could not register som GPIO expander LEDS");9 j4 Z* D  c. h. B% ~. z* P+ A& h
        else
% k) x4 d# v3 [9 x, c+ E% l0 g3 D                printk(KERN_INFO "LED register sucessful!\n");
  M8 d' V) _' N. [! G; _7 ^2 i3 h3 K2 X( d/ H2 g, \
        return ret;# ]' s6 n9 y, B7 ^. @, d% A. ^5 t
}4 T, G% A4 \* p; W8 k9 U$ O
& C) s- L' D# F8 {
static void __exit led_platform_exit(void)8 Q- u8 C4 u, b
{& v" e* Q8 V/ ]7 p- d
        platform_device_unregister(&da850_evm_tl_leds_device);1 p: ~8 x3 u* U% p- H  \; t/ ^
0 F4 C0 Q( ?. ^+ h+ u4 l0 G. o
        printk(KERN_INFO "LED unregister!\n");
# V# A* }8 f3 l. J. Q' s}: h( i6 p, q9 J0 N9 s3 o( o
: @- z( w: T# F/ E
module_init(led_platform_init);- `5 ?. H4 ^) u  M1 N5 G5 f- n) R
module_exit(led_platform_exit);  Q6 t3 f+ X+ O8 e, G! ?/ Y* ~' T

+ `1 j5 i; ~" p( Z$ b! [MODULE_DESCRIPTION("Led platform driver");
; p: X; z/ b- M' d; y% H+ kMODULE_AUTHOR("Tronlong");
4 K$ r1 E6 }6 `9 J$ LMODULE_LICENSE("GPL");
- O! Y* \; `# A% _- a0 q9 W
' i4 E# J/ H6 L" H, v/ y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-8 12:02 , Processed in 0.037378 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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