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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* v$ ?) B: t3 G6 s7 _0 l
#include <linux/init.h>6 H* Y7 _* l0 @+ }# o+ C$ f
#include <linux/module.h>( V$ t/ `' V+ m& b+ E6 l
#include <linux/kernel.h>0 i5 O( |5 V0 Q( O* g
#include <linux/types.h>8 m1 T2 X) `9 p) q6 b; ?4 Z) j! @
#include <linux/gpio.h>4 B% Y# m7 ?; S
#include <linux/leds.h>
6 B& W2 |! j& }- l; |#include <linux/platform_device.h>( }: ^* J, G) f4 w/ D& m; ~+ F4 L
4 k1 O* S" _3 j4 ^
#include <asm/mach-types.h>- U6 Z1 y* E5 J* Y$ _7 ]: G
#include <asm/mach/arch.h>* P# E6 k2 H$ Q0 B
#include <mach/da8xx.h>
2 {* g9 ^% s' h6 ~6 I% A+ h#include <mach/mux.h>+ Z: w9 y2 Q1 w$ H
2 Q) w# d9 j3 K* `* x* f
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% ], ^" e6 n1 R& B#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& A4 `) E1 r0 \! s#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 b) |; t0 Z* }5 Q8 F- k
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  U; I" q1 }9 h8 J: d) X5 p7 q5 g
- Z' \3 i# @+ I. J/* assign the tl som board LED-GPIOs*/
9 v# i: N" ~3 D' k& v$ xstatic const short da850_evm_tl_user_led_pins[] = {
& ^9 s( a' N6 I! F- O) m1 f4 M/ Z$ U5 @        /* These pins are definition at <mach/mux.h> file */2 f4 X: k9 @- p3 `) g
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," ~) }/ p; ^# }4 S
        -1
. X8 @7 }6 J+ y: V. R};6 ?% M" Y5 t( ~  P1 h* P
/ [* y' ]  l9 o2 G( c- H! K
static struct gpio_led da850_evm_tl_leds[] = {
& |- I% x" J- N2 `: X; ~" T+ W1 z& c        {9 H/ N7 X" H5 k7 S
                .active_low = 0,+ M2 j. h7 z# A6 p# |" B. G& Z& C
                .gpio = DA850_USER_LED0,
8 w. i5 w7 k5 z0 a6 S                .name = "user_led0",
: A9 `/ [4 i8 g                .default_trigger = "default-on",
8 D3 b0 d) Y: X  r  O7 \8 J0 }( t: ]  `        },
! d0 R, v" E8 H! H( e7 l; [        {5 r& [3 E" S4 ^: o. N4 t5 W
                .active_low = 0,6 Q7 q5 r9 T, n2 I! H. T; c! ]. u3 ~
                .gpio = DA850_USER_LED1,- W( i+ b! f9 f
                .name = "user_led1",7 h6 _& n% Y( i1 D
                .default_trigger = "default-on",& i5 h8 p! Q. E/ O
        },6 ~$ \2 P" B3 \5 S' |' J8 M7 J
        {) Z- T. V. V# S0 u; ?: E
                .active_low = 0,) l- J! c2 Y  q$ m' O. I: L
                .gpio = DA850_USER_LED2,; t$ Q% y: t- j& N
                .name = "user_led2",* Z' f) G* |8 i% v; v# ^; x* W0 W
                .default_trigger = "default-on",2 m- D% W% e, _; o$ w' c) Q
        },
/ Y& G1 E3 i$ F3 e' J        {, J3 i( P" f& _/ n. M! w3 ?
                .active_low = 0,
1 d, Y+ X) `1 o! X: _                .gpio = DA850_USER_LED3,4 m0 l- t. `+ R5 X; Y: \6 _. S+ o2 _
                .name = "user_led3",7 h/ |# c+ p2 d
                .default_trigger = "default-on",2 ^" c4 e2 J+ U, E& A" Q2 X$ g
        },
+ D8 x" z" J  f: f, B$ e};5 s( O* Z; q, y
1 t0 y: X% J+ C% T9 L- S
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' O9 ~6 \: T6 S0 Z4 g( W        .leds = da850_evm_tl_leds,
( `* v' Y" g0 E6 m2 J8 w/ X4 ~        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- A+ i( a. C4 o9 Y6 Q1 O% o5 v};2 s5 f5 l* `, O4 M6 l

2 }/ s. n7 D- A$ y8 ^2 X7 Rstatic void led_dev_release(struct device *dev)
6 z2 ~; f8 y8 T7 b# J# C{: r# X: S; Y4 A* Z* x8 E3 }& ~9 A
};3 Y7 E  _% x0 W: u$ S
6 a/ Q) ~0 p. M0 f+ ~4 o% S& Q
static struct platform_device da850_evm_tl_leds_device = {# x; b1 {. L6 I# C( H7 L' E
        .name                = "leds-gpio",
- D4 {. D% _. M0 A* F        .id                = 1,
' D; Y( i1 h# Y+ A: E, m/ {        .dev = {
' q9 D" b: d( t- \                .platform_data = &da850_evm_tl_leds_pdata,
1 ?2 Y+ y( n0 w                .release = led_dev_release,0 L! l$ K, w' r# Q( C& ?
        }
- L# \+ }% {; _( W  q' o: @};6 J* j9 ?7 u6 ]4 {
3 `6 \) k/ Z0 c6 L
static int __init led_platform_init(void)/ j4 F" }  k, C, \# \+ B
{! q3 [5 R, h2 w  f1 b( Q
        int ret;
/ m8 a, z$ b* z7 _: X/ t+ d# d( _#if 0
0 W9 c1 I- P. |4 F# w        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, }" G$ k  C9 z, E5 a$ C1 z9 e' ?
        if (ret)* G& s3 P; J2 p7 I7 \1 u9 B
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ T- _0 x  I5 v8 D+ H$ M* _, `9 S7 ?
                                "%d\n", ret);" }9 v) w% [9 ?5 ?  [2 a! _; Z
#endif
3 {* c8 K$ D1 {% s" ?        ret = platform_device_register(&da850_evm_tl_leds_device);
! p7 _. C1 R! x  _5 f2 F! [! {        if (ret)$ T7 J; E# u. @
                pr_warning("Could not register som GPIO expander LEDS");
* x9 E8 x/ Z% k" z        else# a& I- }& G) ~
                printk(KERN_INFO "LED register sucessful!\n");
; F& {2 w! @* k) a% Z
8 w+ x- q3 J. i        return ret;5 R7 l) R: |5 n; ^# Y
}8 p( [- |1 q* f' a# j) a
0 `0 \7 F$ V$ @% Z+ M
static void __exit led_platform_exit(void)
; g( f. R) f/ y& e* ^{6 l( s/ L( i( y( n
        platform_device_unregister(&da850_evm_tl_leds_device);8 w+ [, H5 i! |3 j( u9 e

; e+ g+ P! e0 t' x, l' n        printk(KERN_INFO "LED unregister!\n");/ a0 R: A8 P/ e% k+ f
}( g4 R- A! T! x. A2 _. i8 M3 e+ k

+ g6 e% @/ H8 V8 Dmodule_init(led_platform_init);7 T* S. k0 J8 U, V& N: U# q' M
module_exit(led_platform_exit);
6 y  z5 N$ D* ^: N5 P' n) h1 n0 B" R) S5 o# X/ I
MODULE_DESCRIPTION("Led platform driver");
- R8 N0 A) w, Y; l3 aMODULE_AUTHOR("Tronlong");
+ T: W( S/ e; f& d/ y2 m) a( MMODULE_LICENSE("GPL");
% m3 l- q- ]' L/ k( P0 j1 r6 C& [( C, e7 @" `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-12 06:35 , Processed in 0.039103 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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