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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( M- c) k' Q5 `1 B2 U#include <linux/init.h># A3 q. G* V& H
#include <linux/module.h>; m+ W( x* e, `7 S
#include <linux/kernel.h>7 a0 _4 q: x7 o/ h$ Q5 c
#include <linux/types.h>& a8 y3 T7 A& R9 H
#include <linux/gpio.h>
; q  V5 l. u/ i0 t7 X9 b# m/ P#include <linux/leds.h>1 O* \# {! _+ D- A
#include <linux/platform_device.h>+ z- {4 U# `7 Q  ~% ^, F

, {  b6 i3 Y, Q- C4 a4 {#include <asm/mach-types.h>6 g  D5 Y% a% ]" J/ n
#include <asm/mach/arch.h>
/ e: r+ C4 i' v0 x#include <mach/da8xx.h>- k" E! G' l, f+ b! O5 G
#include <mach/mux.h>; F2 o6 J# d0 w: W2 f+ y
# N* \6 ?6 ^- O0 C7 F2 v
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# S/ v( T$ B6 o4 @#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 o  w" P* `, H8 \  e
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ w% O; g" ~) B0 M3 `
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 T, v( _2 O! F  m: s$ c2 {
0 v5 h( B3 c! ~, o' H. Z7 h6 y9 x6 d
/* assign the tl som board LED-GPIOs*/
5 R; i/ x( N7 Nstatic const short da850_evm_tl_user_led_pins[] = {) h) I; j3 a; z
        /* These pins are definition at <mach/mux.h> file */
; K+ g1 y4 d( @# Z) q& x7 c0 t3 E        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* ]( @3 t. H6 N# f6 F' @5 l' P  y6 V        -1
; W" y# E" Z$ j' e3 j};
% e+ t; d0 t% ~6 y/ c; h: L  g- d
static struct gpio_led da850_evm_tl_leds[] = {& {4 N2 r' D  m% K2 \% T- p! B; l. u  y
        {: n- o8 W6 M  V7 I4 F0 H  y1 P) f( ^6 z
                .active_low = 0,
. A$ I9 s$ @: d5 T6 x                .gpio = DA850_USER_LED0,
0 p' O0 c6 B0 L, q8 f                .name = "user_led0",
( w) [% G+ h* W5 e& J" D" ?& V                .default_trigger = "default-on",
: Q1 l+ h/ s$ E1 X# B6 I        },& w  m3 a3 f7 q% j' z0 C' w
        {
8 B* u" \( k* E0 |                .active_low = 0,8 N3 x  q2 f, l/ K. j/ f
                .gpio = DA850_USER_LED1,
2 f5 A" D! Y! e' }                .name = "user_led1",
& M! x# ^6 h% \% ^$ f0 Z" P                .default_trigger = "default-on",$ G& y9 l' M5 G+ D2 C
        },
+ d* q3 w0 m  s  v        {* I3 s2 d  H6 b' y4 i
                .active_low = 0,
  X& e; ~! F! O1 E+ g7 O. r                .gpio = DA850_USER_LED2,
7 K: Q, e2 \) r                .name = "user_led2",
- Y- `/ a1 h  C( ?                .default_trigger = "default-on",3 ?! C! G' V, w
        },
. P( y$ ~; P  f* N, g# ]        {1 N( O- Q" I, G& i; T' a( ~- ~: j
                .active_low = 0,
. B( D3 ~, |7 \2 Z3 A- g, e) _                .gpio = DA850_USER_LED3,. S4 B0 \7 Z5 e# U1 L8 u
                .name = "user_led3",/ f, P- F& x5 v; q6 y+ P* l! t
                .default_trigger = "default-on",
. A- m3 T* r% U6 d: ?. F  w        },
3 u1 `) \: E0 s};5 H# U; i7 {6 ]  H7 M# u1 G
% I- i+ B5 d4 p$ e
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 P: b; \/ j0 q7 m0 S3 a4 C. O
        .leds = da850_evm_tl_leds,
0 [+ N# ~5 S9 {        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& \: N0 T6 u6 a};
+ y8 Z9 e8 d. B0 P& @9 W% E7 T7 }' L# S/ W' Y* C' W7 J0 Z
static void led_dev_release(struct device *dev)
- J3 B3 L, F8 o0 z6 c{! R1 f! S/ ~, n7 O5 E1 i
};- O. z( m+ l- X0 C- {1 Y, U

9 n6 ^# z* Y" z% `static struct platform_device da850_evm_tl_leds_device = {
, ]- y( p7 `) L% B7 O4 D        .name                = "leds-gpio",
' f0 p$ F, H5 N5 o        .id                = 1,
1 d8 c. E2 ~4 L, R  W6 v        .dev = {
, _# _; Y  W, W% T! t                .platform_data = &da850_evm_tl_leds_pdata,
+ a. e# L; [0 \9 B                .release = led_dev_release,% V1 I! e+ J0 G$ R" \/ u
        }. v( T5 G* [- S; ~- S
};
' s7 m% w7 M7 \% o' C% W% g& o$ A7 E) I1 p. V& {
static int __init led_platform_init(void)4 \; C: C$ f' C3 }* M7 u
{
& y, u: e: ~2 \& K. f8 S6 }; X$ I        int ret;
- V) p. V" j4 R6 D#if 0# e! g  A# m2 N( B; Q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 h; Q  R" V6 W& b7 q: {: F        if (ret)
' s* {4 O( o# G2 U9 F                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# k3 v/ ?2 ~3 ~" B8 R3 R$ C
                                "%d\n", ret);
% C% I4 w* q. D$ W5 b+ W#endif0 V9 z: P( p4 a% T. O4 h6 E+ D
        ret = platform_device_register(&da850_evm_tl_leds_device);2 C4 e' s$ o7 D( j& ^
        if (ret)
4 I/ U( q% T1 `* L                pr_warning("Could not register som GPIO expander LEDS");
9 {3 o! u+ x+ S        else) }) ^* L. {% n' d/ ^& _# c
                printk(KERN_INFO "LED register sucessful!\n");
: b2 h5 \! C' ^6 n8 [* W& ^, U7 P7 v. J7 x# z
        return ret;! A8 F# @4 @/ L% h3 Q' B) L
}* a/ G& o! v  V9 @
' T' Q: \) W2 K
static void __exit led_platform_exit(void)# W" L  z( w3 [8 ?/ l
{3 q/ g1 E" S$ o
        platform_device_unregister(&da850_evm_tl_leds_device);7 P# z  J7 Y8 Q: |; k* \
: ~# D! Q( _3 A0 ~; }
        printk(KERN_INFO "LED unregister!\n");3 [% b; `5 }! x. M7 p# ^. z. O
}5 d6 ~* y5 i' C. f. `8 {
' v( v8 M" h2 n
module_init(led_platform_init);
& ]+ Y4 x+ }/ u) v6 {module_exit(led_platform_exit);
- H7 L! J, M. A
' G" p9 _& a6 N; {5 Z* pMODULE_DESCRIPTION("Led platform driver");
: v4 k2 Z  s( PMODULE_AUTHOR("Tronlong");
4 d; ]9 [: d! Y: t( r. o% W4 ZMODULE_LICENSE("GPL");. s; D9 J: j# u0 {% `3 b

4 z, N* T. v1 `" ]3 z* g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-25 23:21 , Processed in 0.058719 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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