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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 g7 K# S( v2 m#include <linux/init.h>
2 Z( z! m. G- F; ]' M7 J0 z" t& z0 t#include <linux/module.h>
: @. }! G* Y' w9 l#include <linux/kernel.h>' ^8 I  l6 A% `2 u' M/ V
#include <linux/types.h>
: _" U; ]$ E  @, x: E#include <linux/gpio.h>
) M; Q, k- C" v$ D: X#include <linux/leds.h>. y9 Q' D& c, h, A# b5 W
#include <linux/platform_device.h>
) b. v- _" Y# \# Z# w5 v9 c% l7 M' N9 K1 w+ u; M$ _9 F
#include <asm/mach-types.h>
, r( Y3 g4 Q9 g' J9 x) q) r#include <asm/mach/arch.h>) O8 ]3 m1 [" Y3 q4 e9 V% g& d8 Q0 J
#include <mach/da8xx.h>
) j0 r( }- N, L#include <mach/mux.h>! F, q& L; }' }( s
9 O! l$ Z& j; i. A- U9 ?& m7 j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 C" M8 J! Z5 H( r: _! X
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): t9 i$ j' Z4 `% }
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 A" v2 [. W, X
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ j% w8 ^- L0 C5 g- i) z( `: b4 J+ c8 W3 I/ N  W& C7 C2 }, S% }
/* assign the tl som board LED-GPIOs*// K5 [. z) l& k. u
static const short da850_evm_tl_user_led_pins[] = {0 B: e% ^2 _5 y# g
        /* These pins are definition at <mach/mux.h> file */
- o" Q' b7 G7 N1 V% \9 g        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. e$ S/ B  O+ A* b4 V        -1
+ O! h0 Y7 q- @/ o* i};& v- L5 l5 i( L+ Q

# R  g9 L5 H+ p* s5 \7 k) Kstatic struct gpio_led da850_evm_tl_leds[] = {
* Y* D: k, }/ _, h* j7 S        {
' T1 X% _1 M1 v, R; S, X- S5 d1 P  U                .active_low = 0,
- a" z! p* C! \* g! F$ o                .gpio = DA850_USER_LED0,
  E& p  F! D& l7 `2 g! Z7 d                .name = "user_led0",
2 Y  X3 h  {$ G4 D0 P  U                .default_trigger = "default-on",
- I8 d' \. }) n5 |6 z2 h/ |- h        },
5 c% d) @  s3 k* P$ v        {2 F9 _* v4 u- M+ _  @+ [; @
                .active_low = 0,$ h% `: W6 s, Q8 u# M
                .gpio = DA850_USER_LED1,
" `: S7 }" h2 A                .name = "user_led1",
* U8 k( I0 q: L- q. v! B" r0 @                .default_trigger = "default-on",$ ?/ {$ }; I5 x4 r+ M
        },
- D& l' c4 M0 k* w3 t. o8 u) o1 B) F        {
' B) r1 P+ n3 Y5 y2 c$ G- _1 r$ q                .active_low = 0,
- D+ j) ^# W* ]# W6 l! V% a, v1 C                .gpio = DA850_USER_LED2,' `, K+ W6 L# E9 S2 r6 b4 h
                .name = "user_led2",6 @& `* K$ w/ t
                .default_trigger = "default-on",
' V( q; k+ ^) h1 U% V  a+ ?3 e        },
/ m8 T  N# @( e: V' Y        {- H" M/ e  A' W: |# e8 E( r! o
                .active_low = 0,- l/ t8 q0 X) m0 O
                .gpio = DA850_USER_LED3,+ _- N* V$ @, [2 o, c
                .name = "user_led3",
3 G% Z5 Q9 Q# H# G6 W! m* q+ Z                .default_trigger = "default-on",
; m  M5 f- }5 y4 E1 f% ~; d& I; P5 D        },  E7 M7 Z, i' g) C; Y* @
};5 ]& N% n, M8 c( w) X
2 c; e) K7 |9 D% V6 }$ W
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) t- O% Y1 t3 n
        .leds = da850_evm_tl_leds," w* v( j/ E4 h' e1 X1 w0 ~
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ \5 Y  d" G/ i1 `1 q};4 `& A9 z4 J' f9 M

8 z8 m6 q, L/ A: N$ Ustatic void led_dev_release(struct device *dev)- r9 z; j- W* |; p4 _5 ?
{
; |6 z2 c; `0 ]$ y' a, F};
. L. M4 H/ n' @# _) m6 y4 B
) W* M) l- f+ l1 R1 r( Dstatic struct platform_device da850_evm_tl_leds_device = {
3 k) @4 A8 B: s/ q- @$ o2 V1 s        .name                = "leds-gpio",% G+ \. d" [2 a% F2 n
        .id                = 1,  p( e. ^$ z& A/ g$ u8 C7 t
        .dev = {+ C9 i- M% E& P. |" R' U
                .platform_data = &da850_evm_tl_leds_pdata,) L' u+ U1 u+ ^& M) J! H* ]' A
                .release = led_dev_release,
) E0 L: _# f( v        }
) z/ C, Q2 y2 V& ^2 c};$ t* b& H+ W. t, D  F
% R3 [  }+ N% M  a4 l7 x& G0 d2 }4 s
static int __init led_platform_init(void)- y, ]5 G: @7 I4 b; U' n$ U
{1 e* A2 |7 T; E) @' D- m
        int ret;/ z# n1 Q- |! ]+ ?
#if 0
5 p. U, y. K% X) U: P        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! o  R1 T6 q" \! j/ b7 h+ S' r5 k
        if (ret)8 e5 i$ v: p+ f/ R; h: u
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! M. y* r. B9 |6 s
                                "%d\n", ret);# j4 A! b  Z3 }4 S6 W
#endif! Z$ t, \9 Q7 W. w* }, s
        ret = platform_device_register(&da850_evm_tl_leds_device);$ F# z! [( z. D" o& I, M
        if (ret)3 A$ Q: D: Q0 c+ ]! [& k
                pr_warning("Could not register som GPIO expander LEDS");
0 v! f" }- K% Z; u, ]        else
' m& `: L* N/ d                printk(KERN_INFO "LED register sucessful!\n");
5 G9 ?6 h1 ~1 r  i: T- X; p
' z7 c, |+ [2 H. Z8 q& B# {* [% a* R        return ret;- T4 t8 |) [) P! A9 z
}
1 z4 p% |$ `2 I% o. A
8 i; X  _! k, a) U) O, Ystatic void __exit led_platform_exit(void)
( g% o0 h3 d$ T9 `" o( M' v{
$ {2 k0 Z* R8 T( ^6 u/ k+ z        platform_device_unregister(&da850_evm_tl_leds_device);
1 F: J+ Z$ B& D# O8 r) I3 U6 f  l
' \- B! Q# K) i# j        printk(KERN_INFO "LED unregister!\n");0 a) E' L9 }. b% ^' O! k
}5 V& B! L" @1 G+ N6 L2 ^, d8 @& I

1 a, L% e1 x  B, o% M  ]7 G4 D; Umodule_init(led_platform_init);) S% |( Y2 k3 A. G% \% N8 b
module_exit(led_platform_exit);
+ J1 ^! e  g* @( W3 ]# {6 [
8 w$ M+ j' o4 a4 j" L3 p- W8 JMODULE_DESCRIPTION("Led platform driver");! z- L1 ~6 A: n1 u8 R
MODULE_AUTHOR("Tronlong");
; T4 i- b& A9 T$ ~" nMODULE_LICENSE("GPL");
# b2 [% W9 S3 x% S2 v4 f2 x+ ~* ^6 f& E. l3 m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 07:34 , Processed in 0.040133 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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