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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 t- y/ V) T* E/ F5 V
#include <linux/init.h>0 J, ?* M) O1 f# A
#include <linux/module.h>
3 Y* ?  r7 u  `' N' D# S#include <linux/kernel.h>
4 U' s5 ^4 J$ d#include <linux/types.h>
4 Q( I1 y2 h9 l$ E! x5 f#include <linux/gpio.h>
$ c! e6 Q, Q  ]: g" R: i' }! C#include <linux/leds.h>+ {& m/ b+ L6 @4 V6 ~
#include <linux/platform_device.h>
" D2 }: [+ ]4 s
, I6 h+ Z4 P. n* |. O4 J8 }#include <asm/mach-types.h>
1 ]( n  U: K2 L/ i  e/ T. g#include <asm/mach/arch.h>
& g  Y  o( m" P% ^#include <mach/da8xx.h>+ A' R* L: ~  K+ p7 D. o
#include <mach/mux.h>
) u! O0 P, g4 |! V. M& L$ e& z  [3 I* P
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" S3 ~, Q  k& ]! d6 r
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: z% D- H( L- ]! [% O#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 r- E! H, P. @4 \" F
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, S& D2 s) h+ b7 z, _, E
/ c) A% n' u( Q: D( @/* assign the tl som board LED-GPIOs*/4 L7 h8 Y. a# y8 |# @9 f. s  }0 ^
static const short da850_evm_tl_user_led_pins[] = {
, J  K/ P# E* O, z. z. U4 ~- T        /* These pins are definition at <mach/mux.h> file */
  E8 z* G( Z, \        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 e1 w1 [: s. k. g0 a% K/ s( ?" v; x
        -1
8 p0 n* ^) Z' b4 `};; l2 _8 p  Q; ^/ Q, V7 J

* ]4 p% ~* ?" z2 @( z; ?static struct gpio_led da850_evm_tl_leds[] = {& f: @0 x1 e8 `" n% ?
        {8 m: [, R8 v# n7 G$ o' C0 B6 o! m
                .active_low = 0,0 X7 y/ c9 b: z, _' l# ?3 [! B
                .gpio = DA850_USER_LED0,1 H, e! Y  j! G& o. d* g/ z
                .name = "user_led0",
6 W7 r6 F5 a- Z- c4 C- i' g                .default_trigger = "default-on",  q. D# y6 V  P% V6 n6 e9 ^
        },3 t0 W/ m% c% x* ?% `" I1 S( [8 l
        {* ]1 n8 D* D; m0 F7 q2 c6 {. j7 z6 j
                .active_low = 0,% N8 x6 q7 o9 ^5 ~, G. k
                .gpio = DA850_USER_LED1,( g/ _  r1 z4 l* M
                .name = "user_led1",
$ Q# r) d, j- x. g2 h                .default_trigger = "default-on",* d) X: C. N) T
        },
1 M: f. q; i* u+ \5 H) m        {* a' p8 a3 B# s6 [& K
                .active_low = 0,* V- }7 E! T# f9 |2 }) [
                .gpio = DA850_USER_LED2,, V# t2 q+ A+ p. s" X9 i5 M7 _& ~
                .name = "user_led2",
3 O: I6 y; V% i" N+ M9 C5 C4 n                .default_trigger = "default-on",
7 w+ l) ]. A/ ^- G; q        },; \) ]  N& n% w
        {7 b7 @- q% M) _, X3 e) n
                .active_low = 0,
- w; q; ~( X$ I& [. w9 w                .gpio = DA850_USER_LED3,
0 I0 I! c( I" e/ {                .name = "user_led3",
. F. r1 N2 y1 O6 o; b- j% [                .default_trigger = "default-on",
, Q/ w* ~( O5 `4 S" q0 F: Q        },5 C$ _* O+ {) ^& V8 p+ X& E
};& b. {! H9 s' d9 H3 k$ d1 R. j
4 E! p  h) A1 v, T* X+ ]1 _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. a6 q/ ?  E1 {& {$ c- f
        .leds = da850_evm_tl_leds,1 t% P! w7 S. Z) i7 K
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  ]2 z5 _; j# d/ }# v. @+ R) G
};
) b0 x+ x! k2 X' l) I# j0 O
, T2 d3 J( H# M+ p& k* `static void led_dev_release(struct device *dev)# K' p) B% \' G/ ~
{
$ \, i- L  P* D) j) ^};
. D; |0 Y( {! ~
& J* Y$ E  F# }+ j# a1 rstatic struct platform_device da850_evm_tl_leds_device = {! \- f1 E/ g) c& b: W( c
        .name                = "leds-gpio",
, E8 U- O/ y( G& p        .id                = 1,- w* P& o2 T. k5 I: Y
        .dev = {
( e  v1 }& Q- {* w# ^) o6 x                .platform_data = &da850_evm_tl_leds_pdata,6 g; \/ g6 I; j3 {
                .release = led_dev_release,$ Y  a* }: e8 X+ c4 m! B
        }4 Z( W: Y. a  v& e0 b: K/ O
};
- L( i0 n& a/ a+ T# f; i
, C  W  N# Y: B0 `, \; r. Q' fstatic int __init led_platform_init(void)
+ J7 p4 O$ C+ q* F. N{, D3 v. {4 R2 G: X7 `& k
        int ret;
# i, v  T  @% q: ?2 y#if 0% f" C- }: i' J3 l5 l. G% d
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- Q0 x2 T% ]- ?9 c: Z) i4 @        if (ret)
) Z' T5 i! [+ g: |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 m; k( s* z  n7 Z. l1 J( W
                                "%d\n", ret);
9 g6 A8 x) P9 \3 `7 T& x#endif) G& Z" b* G  e1 M1 x
        ret = platform_device_register(&da850_evm_tl_leds_device);
! d. M$ T0 ~: y        if (ret)
& u2 |9 B- }0 }* p5 d                pr_warning("Could not register som GPIO expander LEDS");5 J* h6 ]3 V$ w) [
        else
' h! a1 S" T- N. G. Y' {7 k                printk(KERN_INFO "LED register sucessful!\n");" n; A, ]5 v( M5 I% }% ]4 C

. O8 `+ a+ z8 v% e, L: I3 I        return ret;) O5 `2 ^8 c1 Q8 |  r
}
0 Y9 |4 M5 m8 L9 }5 E, z- Z1 `: l: ?9 ]6 ^
static void __exit led_platform_exit(void)( R5 `3 a: q. Y
{/ p7 B4 U, ?3 p" N. c% q
        platform_device_unregister(&da850_evm_tl_leds_device);
( `2 k# R6 W: P. A+ O9 o5 U5 Y2 z. A* T( g) f2 X& \
        printk(KERN_INFO "LED unregister!\n");# l$ h& p, b* V% ^5 f; l
}
/ a/ H. \% h2 N# M' o2 y! L/ F! O; T( {
/ d) k/ v$ U! o) D# d5 q, C* Imodule_init(led_platform_init);( J& L; v, g. z3 y9 k" i! Y, M
module_exit(led_platform_exit);! O+ j' ^' F: K) @8 r, ?

% ~# q( @' C: r% YMODULE_DESCRIPTION("Led platform driver");
- ^$ E* Q6 [( kMODULE_AUTHOR("Tronlong");
2 ]  @2 R+ i3 Z/ ]MODULE_LICENSE("GPL");! ~; s: x$ O8 c3 x+ ^6 x

8 A! q; t/ M, \: c# l: X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-3 14:33 , Processed in 0.039552 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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