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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# a3 S3 A7 Y0 [# Q3 e; N# _
#include <linux/init.h>
! {6 _4 n: i5 r* p' [. V, j  ?9 F#include <linux/module.h>9 r0 b5 u( P# v4 g7 s- k0 m* F
#include <linux/kernel.h>
6 C% c8 }' m0 L# W# g#include <linux/types.h>
8 T( a, j$ _! x5 M$ D: F8 ^& Q#include <linux/gpio.h>4 ?8 m$ P/ Y6 \% a0 T7 D
#include <linux/leds.h>, F+ r: Y& Z" I4 I" t* S4 ^/ r
#include <linux/platform_device.h>
2 x& ^4 Q# R' }4 n0 U9 E' p1 r
# v/ e+ G4 u- D( o; n#include <asm/mach-types.h>4 [+ _, \' T( I6 w2 p
#include <asm/mach/arch.h>
) W# j& \( u/ G#include <mach/da8xx.h>
2 s8 e6 ^; c3 H3 P4 z( X* a) H#include <mach/mux.h>6 }" ~: c; w+ f4 a# D- @
% [2 C; T; U( Q! B1 n& d/ l
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) R8 D; x9 _# ]! i2 U#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 B* x8 i# u2 q& u+ l#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% g- d4 |! Z& _* a) W9 V6 S5 [1 h% q9 ?#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 V- E4 r& E) L* `% k" p2 t4 a0 F1 b8 E/ ~- r9 y
/* assign the tl som board LED-GPIOs*/
: {. s& J* \* v$ y% m1 d! Ustatic const short da850_evm_tl_user_led_pins[] = {; k$ X! t7 W4 d+ l3 o
        /* These pins are definition at <mach/mux.h> file */9 V2 ^9 H* @: U1 {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( b/ U% [  m) ]% n0 z3 ?        -1) _; ?4 I1 A6 x! t
};
8 Y5 S2 S; F$ P( l" a7 `# ~3 P2 c3 K8 U& }! S6 b" i0 t
static struct gpio_led da850_evm_tl_leds[] = {7 F( e& O4 b, U. A/ q; q' j2 L
        {! L* P1 V0 h8 d. y$ i- S
                .active_low = 0,
# ]! U% @; R5 H+ y; e4 ], |" g% `                .gpio = DA850_USER_LED0,
3 N+ ~! k9 a  i, s" K5 N8 z                .name = "user_led0",: d! U7 g. z7 [3 k. U
                .default_trigger = "default-on",& p6 E6 t- D7 b- v
        },
8 z) P  q3 l* l        {
* S; W9 X1 R- M" _% b4 e+ Q+ T" x                .active_low = 0,# g# C0 n, G0 j. B! t
                .gpio = DA850_USER_LED1,
  ^, b9 j2 U) `" r9 j1 x8 ]- @                .name = "user_led1",* H* r, Y! I- R3 Z& N- s
                .default_trigger = "default-on",# P9 p7 E4 [! Z+ q9 d/ w
        },
7 Z. O3 P- @9 X8 k% b3 N        {
" g. c$ q$ x! ?$ {                .active_low = 0,
  N2 D" z& P: |& k" `- Q6 z2 i                .gpio = DA850_USER_LED2,
$ R" n9 u, E; g                .name = "user_led2",8 L" P0 M3 o5 \( a- f
                .default_trigger = "default-on",; ]6 m6 y$ K2 P$ H7 W' ?9 }
        },3 w. s0 W6 e) T+ V
        {
. p+ V4 Z0 S9 N2 C1 p! R5 d                .active_low = 0,' ?0 j! a4 N6 U" |& `& t5 t) V
                .gpio = DA850_USER_LED3,1 q; n3 {8 m  |- F. `
                .name = "user_led3",' e, K: s) g3 i7 l1 N
                .default_trigger = "default-on",! {7 B. g" v  B+ @6 B
        }," X* o/ B3 w: p* e6 @
};
: j1 c# L& q6 ^8 k, @- F- }- ~+ S7 ]9 a9 A' y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ C$ {% q# S! ~
        .leds = da850_evm_tl_leds,* f% ~! z" J# H: u
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* F5 Y8 ^9 W& U" {7 v% X};# w$ V8 y! Z! ?) W
4 e, V. a, F! H6 K: l+ {
static void led_dev_release(struct device *dev)
7 R, \+ g5 `0 Z, I0 ?% Z4 _. b' ^4 c{: D. h+ Z; ]6 l; v+ K' t! B% i0 W
};
1 `: K. t) y; V9 X* z0 E' l; f! j$ `( N% U- V, O! M+ @7 z0 Q
static struct platform_device da850_evm_tl_leds_device = {1 W6 T+ H' i& {0 h. P
        .name                = "leds-gpio",: D* z- O* r) U, l0 X
        .id                = 1,
9 I- @9 f$ j7 h! c; F        .dev = {1 D2 W; ^' t; e9 u
                .platform_data = &da850_evm_tl_leds_pdata,
( C! \1 L' d' x  q( X& w( B) B! _                .release = led_dev_release,, [3 T) [& W+ V" Z% F; f
        }  [, Q4 Z5 r8 }5 |, y# G
};
8 u. p- Z3 C# A; ?% f+ N& W3 c& ^" N1 [' a8 p, I- J
static int __init led_platform_init(void)
* x" h) Q9 b+ T{
) L" ^# J* N- f5 M        int ret;
' c" w$ q! \& D& s% G% K#if 0' j$ i0 Y9 p& ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, U2 }  J) f* J# L1 c% L
        if (ret)' F0 n7 b+ r  k$ f2 l3 H
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 h, T4 [; C, B  \" Y! v- o                                "%d\n", ret);( n+ ?* C4 Q$ U$ e& J$ E2 F
#endif: q8 @% L4 G& h; `
        ret = platform_device_register(&da850_evm_tl_leds_device);
: z. K% Z# }" J" Q        if (ret), j( F( y6 V' m% J
                pr_warning("Could not register som GPIO expander LEDS");
- M4 @; ]( o( v; d1 Q        else
$ n4 k5 Q# H8 h0 ]: d2 n                printk(KERN_INFO "LED register sucessful!\n");. F, I2 j1 r8 j

7 ?, z- ?9 l  y) I. y2 w" I2 {        return ret;, ~7 k; k5 X  C( Q
}6 Y  x1 H; Y. K$ m  g4 R
4 S" a+ ]  ?  X$ v$ E
static void __exit led_platform_exit(void)' y; P/ l# J) o( g
{
' a, F: m* J. d' ~7 b0 A, s* C        platform_device_unregister(&da850_evm_tl_leds_device);6 v+ M: Y5 H5 e& W  J" G7 {4 b# R

& U( X( ?' ]) S; C# k        printk(KERN_INFO "LED unregister!\n");
3 |6 x. t5 |- u}8 N1 ^9 u5 T1 o, E( O# W% y
+ o+ \8 F% R& n1 k2 M
module_init(led_platform_init);' p  r4 u$ w* X0 D1 m# `/ p- @
module_exit(led_platform_exit);7 G/ o7 g$ s( m1 ?8 b
# b: t1 J) k" D( Q3 C
MODULE_DESCRIPTION("Led platform driver");
# B# O  g1 J2 _4 w9 y- |# fMODULE_AUTHOR("Tronlong");) Q# b# ~, z5 U8 z  x$ U8 [4 t) a6 I
MODULE_LICENSE("GPL");
/ z9 h# T9 ]; C3 W5 H0 F* g
- z+ h5 Q6 ^9 E( Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-9 05:42 , Processed in 0.041448 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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