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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 t' O, x) G: d5 i#include <linux/init.h>
& M, T+ e' S2 n; J$ K" H#include <linux/module.h>
. z! v. l9 @* M, D& @#include <linux/kernel.h>
: L2 j: k- G' u7 r  \2 `#include <linux/types.h>% G9 Q: s7 U9 f1 b
#include <linux/gpio.h>( u$ e; U8 v6 d8 t
#include <linux/leds.h>
9 X% }1 J+ ], D8 w+ x#include <linux/platform_device.h>
& W4 P1 l* K/ l
5 A$ h/ m9 r' n  n#include <asm/mach-types.h>
1 w" [/ D6 ?; u9 V#include <asm/mach/arch.h>. u& m, S! ^5 _7 }6 ?5 i
#include <mach/da8xx.h>
# A' J( \! P  c: t) G$ V0 Z0 y% T#include <mach/mux.h>
7 K, B( u  I& L; a2 _! l. G
) P: d) w6 z' s#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 w5 h# ]9 i: V- G4 V/ _#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 {# [# a; H* ~2 m# Q% m! j' b$ t8 t
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 d  f: n, t! S$ I0 o#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 H, M8 Q# k1 c
- \, s8 G8 D+ m/* assign the tl som board LED-GPIOs*/
: v4 c) f# P) z( f. y# m2 Kstatic const short da850_evm_tl_user_led_pins[] = {
' n1 r5 l* \9 n7 ?. _# \        /* These pins are definition at <mach/mux.h> file */
' ~' t/ @3 I9 @) H% w9 b        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ z/ C8 q/ ^. y7 }5 [# ?- h: m
        -1. m7 m8 Z7 S: M. d
};% k/ o% c9 ~8 B; P" \; @

& D+ ?; b, _' e! Z  R. U, \static struct gpio_led da850_evm_tl_leds[] = {" E  P6 w! A' ^, ?; `
        {
: k& R+ i' Q& F: v+ m1 }& m                .active_low = 0,1 B' G4 ]  z' J8 Z3 j" D
                .gpio = DA850_USER_LED0,3 X# z$ Z2 G2 n, K; ~
                .name = "user_led0",
7 x% M$ I" j0 V4 z: r! R& ~                .default_trigger = "default-on",) N  P( z. P1 K" l0 U0 Q7 b
        },
; x: G8 R# m8 y- o        {
& t. ?7 P) i7 s/ Q* T: F# u                .active_low = 0,7 H4 m! w: {! D* ~% W8 Y
                .gpio = DA850_USER_LED1,
+ k% \( K* d6 ~$ D: a                .name = "user_led1",
3 p8 t; ^6 [3 v                .default_trigger = "default-on",
: X" M( h7 U6 e0 t# v        },
3 j& `  {/ U' l) E: L5 R        {
/ E$ v; C3 W8 E! q* {) R2 _                .active_low = 0,
' Y+ G6 a# P$ ^                .gpio = DA850_USER_LED2,
; ~& N6 X& Y6 I' b0 y                .name = "user_led2",
- D  j( J7 y2 B# A/ n) x                .default_trigger = "default-on",
" E+ M1 Y! L" {1 n" R        },0 L3 K* {) G2 N% j6 E
        {# @1 X3 _1 O( N2 z, v  S: Q2 w
                .active_low = 0,
$ |& a) d- P& T0 i& |  e                .gpio = DA850_USER_LED3,
9 M! I5 H" U4 ?9 f/ A: C                .name = "user_led3",' k6 t. o& s; W
                .default_trigger = "default-on",  D6 T! l6 ]; [+ m2 `5 A
        },
3 q' G0 E: P8 W};4 z0 }. h3 v  K. J. a1 b: l; N0 P

; K/ q* c2 T4 w9 Y1 _static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 R& V/ e" G! i, J6 m        .leds = da850_evm_tl_leds,. G* l2 d4 m7 _) \  Z) M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 Y# R& ~& z- R$ d, p" ?3 ^: q};  P& @) o$ g1 Q- J

* q, a) T, M7 E) Z' z  W& gstatic void led_dev_release(struct device *dev)
8 a# z! Z' R" U# R' T9 T{
# ?0 i, W: O, j5 C; @};
9 S+ ~3 H% y# l3 C# i! ?
* c5 }/ M4 V( T* estatic struct platform_device da850_evm_tl_leds_device = {3 R3 _6 h) b. c) K6 k, K2 v" V7 C! _1 ^
        .name                = "leds-gpio",
' s9 Z0 h! Z; E. Q        .id                = 1,% n  u! `! f2 b$ a. `
        .dev = {' {* `: ?5 ]9 j0 ]
                .platform_data = &da850_evm_tl_leds_pdata,7 ?6 b" c6 g0 a! V/ O/ g! J
                .release = led_dev_release,
4 a! q( m1 ^5 J4 j" s9 q        }
: x( s) O$ C9 Z# l3 H% }- U# |};
" v2 n/ T+ u5 i8 i+ d, H8 M. l6 D2 q& j, A! y1 S9 F
static int __init led_platform_init(void)
& i% {) u$ p/ _. w& r9 G) U{
$ ^) t8 p* P- F* A( }4 \3 x        int ret;
; p% {) P5 \5 k; I#if 09 Q! _" A3 F  E& k6 U& g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 _1 s( y. g5 |' S% f5 H        if (ret)
( U' I8 c' a' }6 r                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  n$ e' @/ v; B! q+ t% z
                                "%d\n", ret);7 Q( ~# Z0 b1 _: C; d: X
#endif
& m/ g; \' z$ `3 Z5 I( k        ret = platform_device_register(&da850_evm_tl_leds_device);
4 N( ^9 _9 w( ^, U. ?; F        if (ret)% O; }  m3 p2 C
                pr_warning("Could not register som GPIO expander LEDS");; B) T6 v* W& d4 m# m6 \- M4 i
        else: N5 _- J9 x3 ~" A8 n
                printk(KERN_INFO "LED register sucessful!\n");. P9 Q5 D3 C' I. A- r. \+ ?
6 s4 w9 f1 u. R( m! K( t
        return ret;. g- Z; B1 V" ], j) g( P: e
}6 @' I( u9 C0 x) i) ~7 T

$ C- O. M  P: I9 b! E6 ^1 Qstatic void __exit led_platform_exit(void)
3 I6 P5 C; Q2 r* Z2 |. _{8 S) q% u7 k1 b# y' Y9 K, I2 E4 ]
        platform_device_unregister(&da850_evm_tl_leds_device);
5 r8 u6 e: h" O% b. ]. k
5 w5 I6 g5 ]! w, b        printk(KERN_INFO "LED unregister!\n");/ l. |/ `; d& |7 x" j" g
}
! o* C" P$ i6 \% M. E# b# p! I( p6 k
module_init(led_platform_init);
7 c6 i1 O" ?+ r! y5 hmodule_exit(led_platform_exit);3 i4 `' c( z/ K$ C5 B3 b
" T: C6 b9 q9 v4 ]$ h
MODULE_DESCRIPTION("Led platform driver");
  ^. j( i. p, a, Z) k: BMODULE_AUTHOR("Tronlong");
0 M8 q5 Z  `- A# kMODULE_LICENSE("GPL");
8 \3 Q, t1 l( `, E+ E4 e! d6 [% n6 J, K. H2 f. z5 X4 i- Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 13:48 , Processed in 0.039548 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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