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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ V% Q: J) N, J5 Z$ O1 e( P
#include <linux/init.h>: Y7 y$ S. z, z  b6 e* V
#include <linux/module.h>
6 @6 @6 ^/ Z7 P3 D2 l0 f#include <linux/kernel.h>% M/ M& R6 Q- Q8 T8 z- G/ G  `
#include <linux/types.h>
, h; U( S* }9 y- f5 Q5 q#include <linux/gpio.h>
6 T. b0 M% J! X, a7 E# P; p- |8 j#include <linux/leds.h>
) H" e2 t. P) w  h1 j+ p! H. r% |#include <linux/platform_device.h>. I% o' Y- |- J" T( l+ p
! |! {# O% k( W* J8 M8 f# U
#include <asm/mach-types.h>
5 D* q) |& K7 V9 M! Z) N#include <asm/mach/arch.h>. F' C0 ]$ t6 r' b. ~% F! C
#include <mach/da8xx.h>- L! ^- s2 D$ i0 j
#include <mach/mux.h>8 C2 d) E5 M, F* w
, Q/ D: R8 \4 v  _) b
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 `, h% U) p9 u; B
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* m6 j' X" e: i$ b/ c1 q! v
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ C; v5 _6 y* {7 x" h: E& _#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" j1 n3 i* {4 z. j5 Z+ B) n6 f5 f$ W7 @
: _- h0 U! f. k9 c/ \3 Y$ e
/* assign the tl som board LED-GPIOs*/
4 I4 P  Q0 @( r8 ^% ~. {" e5 xstatic const short da850_evm_tl_user_led_pins[] = {" |7 v! p" X5 w( j* j% ^  j
        /* These pins are definition at <mach/mux.h> file */
7 n- {) M2 P; I' k* B3 u        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# r; F4 r' X( b9 ]- P        -1& Z0 A2 Z; G( a+ q) q& D
};
" [8 m+ P2 c) b" s5 k( ?
3 u1 U& B+ d3 {: M* Dstatic struct gpio_led da850_evm_tl_leds[] = {/ l) d- ], Y4 z- [
        {- z5 L5 p! T8 ~
                .active_low = 0,
- U8 i0 b( I) G& [6 o4 t                .gpio = DA850_USER_LED0,, Z# q! k) p& J+ }
                .name = "user_led0",
7 _8 Q+ u6 K+ }                .default_trigger = "default-on"," ?4 _; O! m8 h& u- X
        },0 _/ A7 Z. h" o* {4 e
        {
4 z1 d4 w$ B' J) j                .active_low = 0,
6 |# v2 m2 a6 K; t$ ?                .gpio = DA850_USER_LED1,' d' u& h2 K4 \, p3 B( p
                .name = "user_led1",0 c: s7 O2 G# [
                .default_trigger = "default-on",3 u- X& R& L3 o" i
        },
9 M# w: H+ Q- Y/ Q  J3 Y) E0 y  X        {: Y$ J% I+ v) g6 [
                .active_low = 0,
' b7 [' {. S5 x8 Q                .gpio = DA850_USER_LED2,
' k1 y& r3 D9 A# J+ R& D                .name = "user_led2",
6 g6 `6 r- C# @                .default_trigger = "default-on",
9 F9 e) r) ^6 ~& i        },0 Y, K. I. N2 ^2 k* x8 m& V3 ]4 ^6 w2 q
        {6 z( V& D7 h' ~! d0 m! W& \
                .active_low = 0,1 q% u* O6 E. v4 l+ s2 V
                .gpio = DA850_USER_LED3,) S: q9 l& M. Q9 O. H5 f
                .name = "user_led3",* \# z, a) m% G/ J; z: x* `2 _$ r5 Y
                .default_trigger = "default-on",, T; d4 N) S  ~9 X7 x: i7 W2 n
        },
9 T4 x2 t; D* N4 F  q: b( {' k+ U};+ f& t  u2 E5 _1 w) ^' l9 d

; @1 a" L' W4 v( `: ~static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; e- ]: I! x/ f6 m- p) E: N        .leds = da850_evm_tl_leds,
7 m: `. ]; n+ O' {5 [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 a4 r- }$ R3 U+ J: g3 g};
/ [. Z* i$ g" q8 |, t: J- u
9 J! t* @! F, l9 U9 B1 Jstatic void led_dev_release(struct device *dev)9 T8 J! {* k6 S- g. u
{: N  h0 E* U9 e# W
};. M# p% C  [! ]; Q$ e7 @, B% G
1 D/ w" e( L# ~) G' E
static struct platform_device da850_evm_tl_leds_device = {4 a4 Y0 n# k; x$ @3 C; f# P
        .name                = "leds-gpio",, Y" h8 H! \/ t; ^9 S- W
        .id                = 1,3 p6 \1 M2 s. ?7 Y
        .dev = {
3 S9 u  A, D6 Y                .platform_data = &da850_evm_tl_leds_pdata,' r7 J. r  ~' C* Z1 G
                .release = led_dev_release,, ~5 ?" r! \% t
        }# K- v. H, c% c9 J( \
};
7 e& t0 m9 n+ n2 O" @3 y6 z. I* @6 k- v" ]1 O* s1 h  o
static int __init led_platform_init(void)
: ~9 b+ l. A6 ]& Q6 F: x. f{- r8 _- ~0 V& _' A& X
        int ret;8 I2 D  z! h& P" m
#if 0
0 q* f: }) ^, T  e: T7 \& {9 m        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# T2 I# Y1 C% Y7 E9 p6 L, x
        if (ret)
) Q: h" L3 {- r3 m1 S3 i2 [                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 V- \' Z7 o  l1 ?9 S7 n                                "%d\n", ret);0 v. L- x3 @# {& g* e
#endif
! t  @6 c! T1 {" j% w        ret = platform_device_register(&da850_evm_tl_leds_device);- |& O: A' u  b0 ^
        if (ret), p, ?; n/ k( v8 S7 z( q
                pr_warning("Could not register som GPIO expander LEDS");4 W; N" [6 d( ~- E9 B4 C
        else
0 w* ~; O0 s7 w                printk(KERN_INFO "LED register sucessful!\n");. N, v) ~! a: u
0 q8 C( J9 q- q, n  @
        return ret;
) a4 @+ p" }' e/ I; h* S}
4 m3 I: F0 Q2 p) @1 h1 t) R( u
& P9 Y! f& _5 m* f$ w0 U/ Y! I5 qstatic void __exit led_platform_exit(void)
) t' f8 E. O3 Y7 m6 P) S& p/ P+ c{
9 H; Z$ i' z+ |& M( s' s. V        platform_device_unregister(&da850_evm_tl_leds_device);! v. N1 {6 R8 }
; {/ \1 D1 x3 t0 E
        printk(KERN_INFO "LED unregister!\n");$ }% Z1 t3 Z' v% |$ \5 H
}
' Y+ ?" E% `7 s/ S" {- J; H# E; @: k3 v9 E" Y% h: {
module_init(led_platform_init);
3 L+ N# g" Y+ K/ e" a! \- Jmodule_exit(led_platform_exit);6 T3 Q2 P" ?) q5 }8 \# [
! k& |; H& P  V
MODULE_DESCRIPTION("Led platform driver");
# C+ [9 z) p; h# n+ u! WMODULE_AUTHOR("Tronlong");
6 a; Z: B) C; t) A" XMODULE_LICENSE("GPL");4 a, Y& U0 r3 e/ g

8 E1 y7 _* U8 A/ C# u6 ?! z- X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-2 07:45 , Processed in 0.041529 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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