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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。) f$ ?  o6 Z7 e5 Y
#include <linux/init.h>7 j: t1 B+ F- ?, E& ^8 W( M
#include <linux/module.h>: O$ v: {" D" w6 i
#include <linux/kernel.h>$ ~5 @$ i( Z/ Z; j2 ?
#include <linux/types.h>
% A% Z( Y0 l9 C' ^8 h8 T! n' N8 Y#include <linux/gpio.h>( T9 J6 k+ `8 z+ u) _4 u& u7 p. K/ J
#include <linux/leds.h>
/ i+ w/ E) T6 ^, Z, F4 a#include <linux/platform_device.h>5 N" R& w. c9 h9 z8 |6 A
9 c" _% [% Y$ T# a2 t/ H
#include <asm/mach-types.h>
, m# {" h) j7 @, N1 w" I0 e#include <asm/mach/arch.h>
( Q; r+ ~8 a; G" U6 k) k#include <mach/da8xx.h>
& o7 t. ]6 R! F( y& j1 o. c#include <mach/mux.h>" U) C; w0 Z1 T% Y
( @1 m( r, {- N$ o! v7 f
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 H8 w9 _, s5 c#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) v8 L! @$ L4 c0 s$ C+ A#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ U! Q" Z2 S* l! E% ]& `
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 N& U# D. t$ Y3 j7 W' q
% e8 R, N  |; x/* assign the tl som board LED-GPIOs*/
/ e3 w# P2 @* f. ]static const short da850_evm_tl_user_led_pins[] = {
: p/ I9 \. h+ X  \* f2 [' q        /* These pins are definition at <mach/mux.h> file */
4 U  [" T. h& @3 }: o, C' O; P        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ S8 a1 t# @8 ?6 U  z9 ~& S
        -1% C7 I& b! l! N9 i$ H
};+ N+ D. ^. o3 n
1 y1 Z/ Z2 Y- ?4 v3 m
static struct gpio_led da850_evm_tl_leds[] = {$ P* O$ p* B1 Z
        {
8 ?5 O7 p" d% h7 K) V                .active_low = 0,; r& j4 T* T2 U# ~
                .gpio = DA850_USER_LED0,$ Z- `$ ~- O- a
                .name = "user_led0",% i9 o6 h' `+ d
                .default_trigger = "default-on",% e* N; M1 l) J7 N$ B4 S
        },
' L+ {: v2 P  X        {6 J! @4 V2 C  Z* L' G. R6 O
                .active_low = 0,
) L& A2 T8 Z3 Y. ?% l: z" r                .gpio = DA850_USER_LED1,2 O" W$ ~8 o8 S2 u0 k; ^/ Y/ o5 N/ r  f& n' X
                .name = "user_led1",: w+ C# D3 D1 C. @7 R5 p7 g
                .default_trigger = "default-on",. n3 c4 T% ?5 s1 c
        },
# H4 z, a9 v+ `4 d: Y7 Z2 {1 V        {
0 Q+ B# ^  c# w1 S5 p1 S                .active_low = 0,
6 {$ M; J* O* p( Z7 d  D2 F9 F                .gpio = DA850_USER_LED2,
  v) F$ x$ k) W9 z& ?                .name = "user_led2",
' Z# p+ p" U0 c7 H0 d3 F; `# S6 p( K                .default_trigger = "default-on",2 ?1 q9 n$ h" ?
        },
5 J9 i9 X3 G2 K+ p; N        {9 r; ^9 M7 t4 j# r4 }. n0 C- u1 \" B2 G
                .active_low = 0,
* |/ B* c2 U3 v. b& a                .gpio = DA850_USER_LED3,
6 j- e, }5 @, W. Y5 H                .name = "user_led3",
: e- R4 A' A( |, i/ a0 c. k# O                .default_trigger = "default-on",6 t7 L, N; {$ k- [0 ?" Q
        },/ [! P) M( Z) i( d! X& d7 Y9 Y. Y
};
- j# l' k4 j. ~
4 s2 ~( v" P! {% m, ustatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. {0 _8 v- n( f# k+ K        .leds = da850_evm_tl_leds,. i: H7 P) b9 ^+ \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; H5 P, Z6 D; b- A* }
};; a$ k3 l! T1 E# V$ _; n0 X! |* S7 P

. |+ Y9 ?, Z3 T" |' k9 ^' m, ystatic void led_dev_release(struct device *dev)1 z" O3 j* r2 Z& q6 q' `! Q
{! y; e& ~4 Z, @# n6 f" V" T& u
};/ S0 ]) m& M0 M
- W) K! D0 P6 D$ q$ X7 B2 z, v" `
static struct platform_device da850_evm_tl_leds_device = {$ r- o, B9 ~% [* N4 d1 T  }, i
        .name                = "leds-gpio",
* M: v8 K9 [3 a6 ~, m        .id                = 1,
+ k" C2 }/ S& r% o' e8 e  D1 P6 l        .dev = {( C0 r8 _( S* z; V
                .platform_data = &da850_evm_tl_leds_pdata,3 G) D, A/ h. f( z2 k( [8 Q: C1 s
                .release = led_dev_release,
9 ~  ^3 l/ [; _+ m" L9 W( K        }
8 K1 F9 {& o& p' r: _% G1 p8 X: E- t! s};
. d8 G2 J6 w9 b0 d' c3 F- A3 f2 c( c2 N- B4 `; {
static int __init led_platform_init(void)8 [: E( |& B* W2 t- G8 B0 }1 m
{' d3 G  \. Z4 J; i$ @& p4 Q
        int ret;
6 L. P9 O9 ?7 T( M" _) V#if 0
, ^/ [# I+ b3 o% L8 l1 k        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 O) O5 y- c: F        if (ret)( c; x, S! Q1 N5 r0 h4 L5 e) ~: a
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! c# v# Q7 `& X
                                "%d\n", ret);& u  B) G0 e  U
#endif- K8 n. t( b  i2 `) i- P
        ret = platform_device_register(&da850_evm_tl_leds_device);
2 G) B2 E0 O! w, \1 `; R: W        if (ret): G4 ?, z+ E( Y: L0 N9 Q
                pr_warning("Could not register som GPIO expander LEDS");
4 G& C2 @; s; `/ r- f( q        else* n7 x6 M$ [3 [
                printk(KERN_INFO "LED register sucessful!\n");
$ G  Y2 m* m  }9 S! v: {' k: m% t6 s+ e4 A$ w: ^
        return ret;* V; a" r5 M1 c7 ?+ ~6 T
}
$ r* R) L  p1 m: `: p% l' ]
; X. h6 U4 A4 O) @6 X& ^/ n" mstatic void __exit led_platform_exit(void)
0 |9 [0 d( G  v7 m5 {. H{
$ g- O' V/ ^1 D' Y$ I/ E7 ]        platform_device_unregister(&da850_evm_tl_leds_device);
  @; `. g5 S+ Y& q0 e( ]3 W
6 F0 i, K& ]& n9 p        printk(KERN_INFO "LED unregister!\n");
  o  S( p3 T& [}
$ x6 f5 `$ g6 O& H' p1 D, u% Y7 S, D" K* z. c/ N- P
module_init(led_platform_init);3 Y+ K2 L5 ^, z+ T& L& L1 y
module_exit(led_platform_exit);( a6 f& @5 x& I* H6 Z
% i) u8 ^- f! ]
MODULE_DESCRIPTION("Led platform driver");7 K4 ^% {3 S  G! Q/ D8 V3 {
MODULE_AUTHOR("Tronlong");
/ H/ L4 ~! y# Q, M/ ?' jMODULE_LICENSE("GPL");7 B* V/ `  ?9 m+ f6 z& ]
, U% B5 ~( Z. }4 x- S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-17 04:05 , Processed in 0.037735 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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