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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" F" A2 o+ D5 ?. i! L% z0 m
#include <linux/init.h>
3 W* o( s4 q/ n3 N8 q( x  f0 A& \1 q7 x#include <linux/module.h>
0 m9 v4 e5 J' p2 c#include <linux/kernel.h>8 V4 t& z7 X: j2 N9 x) y
#include <linux/types.h>& ~, X  \* m  U  l- v
#include <linux/gpio.h>
; P3 y0 E& i/ x/ m. p0 z#include <linux/leds.h>* e# e4 j7 @" }' m5 O3 R
#include <linux/platform_device.h>
; M3 d, T2 ?+ z* L  b
) B. J+ h8 {- W, o! o#include <asm/mach-types.h>
. G5 S$ D- s, k" z& u$ ?#include <asm/mach/arch.h>
/ o4 f- H1 k; P#include <mach/da8xx.h>
. W$ P$ q. K6 g- Q7 h+ J#include <mach/mux.h>4 f: m9 S$ q8 T- F0 I* V* t

! Q5 U+ D2 ?  [, E- @' |#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 }- V5 _6 t7 b+ ^
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- D" {7 r. T6 n7 M#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ N2 V, b  ]7 f+ P' X1 I/ }
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% x$ X9 D4 m) [/ I0 y1 v( _, `0 I: b0 Y3 T, U0 ?1 {- d# m  {" [
/* assign the tl som board LED-GPIOs*/6 e2 ?$ S9 s+ c
static const short da850_evm_tl_user_led_pins[] = {
" r$ n4 e$ N- |$ W        /* These pins are definition at <mach/mux.h> file */' s& Y$ F% M2 ]5 s
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( P" P) H+ p7 h7 s) p
        -1) L, y+ c4 w% `: F$ a  w
};
: |3 w1 h8 s2 U7 B5 k3 C, d7 n6 E% s7 y" k; O+ h# s' R
static struct gpio_led da850_evm_tl_leds[] = {% Z6 n& _' T7 g& p0 s
        {
6 O7 ~* W/ {4 ^* _4 g6 ?+ Q7 P& K; k                .active_low = 0,
0 `- k6 n4 K6 z7 h% Y                .gpio = DA850_USER_LED0,
5 D, Q/ u% Y/ R- X& }$ ^                .name = "user_led0"," ]& N7 P- {) G: b/ j9 A
                .default_trigger = "default-on",
  W$ e- ~8 C4 i3 Y/ B        },4 P" a" l8 J% P% S# z( t
        {. S/ g$ M1 C. c$ V
                .active_low = 0,% `% w  ~% @+ i" \* W* o" \
                .gpio = DA850_USER_LED1,
4 \) ^% m/ l. B6 u& u$ v) n* ^                .name = "user_led1",9 W& E- V% t* e; J0 |( }4 T3 V7 g
                .default_trigger = "default-on",' i$ \6 z( C/ I* o5 Y3 j1 c
        },% P6 Z& H; C" ?* U! u  K
        {
& q! L8 X" {9 P# Z4 |6 F" p                .active_low = 0,' @4 f) |& ^! Y$ k& i& S6 ~7 ~
                .gpio = DA850_USER_LED2,9 H; \4 |+ ~3 b# X6 X7 m' p2 f0 p- o
                .name = "user_led2",9 J, z* F$ b! ]7 ~  X3 Y0 `* U4 ]
                .default_trigger = "default-on",5 @& F2 Z: W& r# a3 c
        },
% l! O0 \6 n2 @+ E$ B/ ~  k" X6 B        {  w4 {$ q6 e# a6 `# v' Q
                .active_low = 0,
7 l. B9 K# \( O5 l2 |                .gpio = DA850_USER_LED3,; ]) W' q# T* J3 j6 H+ Y/ v
                .name = "user_led3",
# G( Z' F/ b* X7 j  s                .default_trigger = "default-on"," e- ]& b6 c$ r. |$ T! C2 @
        },
( c; R! U# e3 ]/ V& h$ L3 P};
. B0 _) W$ o" z& O& E/ T7 C9 g5 e& m/ c$ g6 e% ]# i0 k
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: y( j* ]3 w3 k% a. L$ O        .leds = da850_evm_tl_leds,
, ]. @- H3 l( c" C        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& i( ~3 e6 u) p& x};
6 I7 _% u. [0 f) @) L4 L! j+ C
+ ]7 N. r% [. s5 n6 i$ S- V: Zstatic void led_dev_release(struct device *dev); V/ h, k+ o/ {
{6 B" t+ i+ C$ s
};$ O* i# H2 L; X8 [7 g' x

( D% Q* m9 t. E/ w) wstatic struct platform_device da850_evm_tl_leds_device = {
2 j% e9 I0 Q9 z" |0 r2 k* }        .name                = "leds-gpio",5 Y" i/ _; S' l; k0 Q* n- N
        .id                = 1,
8 U3 W! m( _* `' Q9 F        .dev = {
& t  P! ]/ f2 s% x1 v                .platform_data = &da850_evm_tl_leds_pdata,/ l' C4 S$ _6 _8 [% |) L6 o* }/ g
                .release = led_dev_release,9 i& j8 Y2 D7 f; {
        }; s9 j2 J  J4 Z% ~
};
2 l' D  B8 b- r0 t* N% e/ X- r, e9 U7 B8 o  k& Z
static int __init led_platform_init(void)
7 Q& C  d; |4 o/ }3 ?{& O( t) c1 n6 L5 G% \5 s
        int ret;8 F5 A" _, r  \) o) ~% W# P
#if 0
  X  R: s5 I& [! v        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( Y6 K, t6 V- k8 n        if (ret)
' d! G; ^# Q6 ]8 D+ C                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- N, t' L3 P: {                                "%d\n", ret);
% }* [3 u1 l" M. [- J#endif
6 V$ n# v9 n  b1 G" r+ c        ret = platform_device_register(&da850_evm_tl_leds_device);
- C9 A/ c( L, ]' y" R% ?+ p        if (ret)1 q6 p2 Z7 F# F
                pr_warning("Could not register som GPIO expander LEDS");
5 }+ |1 a- h2 l) W& d# x3 k' ]: ]        else
- P7 x. p$ i8 m8 {2 F( C                printk(KERN_INFO "LED register sucessful!\n");& }$ [7 \  C) v* a  @7 u/ M

3 o  b3 N. N! o' I+ E3 I, `7 c        return ret;0 L# H( Q) n1 |/ v  G* r# \
}; X2 l% ~! y& Q3 e4 E- T/ a+ T3 z
; Y: b2 x& ?3 \, {$ H
static void __exit led_platform_exit(void)
% T3 j/ Q& C( K% ~) \{0 Q6 y$ }" ~) o, y
        platform_device_unregister(&da850_evm_tl_leds_device);& B; H9 E1 N. n7 J$ `
0 G1 Y5 g2 L& |9 r3 D
        printk(KERN_INFO "LED unregister!\n");! O3 d% P4 p  G$ S
}
& D+ `- ^; h9 |3 U
& a  t0 f" h3 }2 z- M8 {/ Cmodule_init(led_platform_init);7 D( I9 G1 ^; ?  @7 ~- Y
module_exit(led_platform_exit);
+ e+ W1 }9 a, ?
% g  y8 A$ s( T0 H* EMODULE_DESCRIPTION("Led platform driver");
9 s% s! S/ `# [% ~- S* Y' w+ WMODULE_AUTHOR("Tronlong");1 a3 z2 V/ @3 U( O# B' D* x/ I
MODULE_LICENSE("GPL");
# Q+ [" A( u" H
/ |' `# ?$ i2 a2 y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 19:44 , Processed in 0.040367 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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