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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  ]' G" q6 ~# M2 y7 c
#include <linux/init.h>
  b- B* G) D3 G  B# t#include <linux/module.h>
+ v+ P: I2 @9 c- e, i% Q* u#include <linux/kernel.h>
' z9 u( c% q, O$ I4 E#include <linux/types.h>
* Y/ Y4 p4 E0 \% h" n' t#include <linux/gpio.h>
6 r( ^( L7 l: q3 O7 f#include <linux/leds.h>8 |* H& u; L/ u6 V- o/ V- P
#include <linux/platform_device.h>8 c9 [& f; B! }6 w2 l( q
0 j$ b# A: Y9 m/ z1 q" ~
#include <asm/mach-types.h>' ~# L# U! E. j* l7 N, ]. D
#include <asm/mach/arch.h>
3 V) N1 K: \2 G  O; Z7 b#include <mach/da8xx.h>% O- F) o1 k/ D1 X2 r) n
#include <mach/mux.h>
& v+ O; h# j0 z$ M
5 s0 h1 i* X$ J6 ]# ^' }6 {#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# y. g) G( ]  P8 }9 z$ _#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; H, ]! }7 D3 {% o. `) j( }#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 Y) v9 m7 ]" u4 W8 P! Y) i4 S
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 @& W9 J- Y# I! F' r

+ [! Z- X; u( ^6 J8 {* N$ o/* assign the tl som board LED-GPIOs*/5 W- ~  i) I3 O& x) a7 g
static const short da850_evm_tl_user_led_pins[] = {! |0 J5 j, D" \0 u
        /* These pins are definition at <mach/mux.h> file */
, G" m8 ?6 [7 s. H. P% k/ ^* U( w        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) k/ ~8 T# x" I! ?, A: j4 f        -1
' c# W+ m  Q' U% y. z% C};
* F* V1 T: X! C) k9 o1 b
% }7 d, j+ U6 ]+ [+ a4 {% {: ]static struct gpio_led da850_evm_tl_leds[] = {9 z6 w, Z4 Y" I% Z4 d
        {1 q( \/ n! t& C' t1 i# ^: @
                .active_low = 0,( ?3 D" P$ A5 n4 `
                .gpio = DA850_USER_LED0,
  e- h& X: \. m                .name = "user_led0",9 j; Q9 s7 _8 h1 V
                .default_trigger = "default-on",8 B. h. B9 S0 Q, v4 r' Z- j) x
        },
4 b# D* V1 E6 h5 b        {9 O) l5 ~) Z4 R/ i$ m
                .active_low = 0,# N  p+ N8 w/ Y+ T" ^
                .gpio = DA850_USER_LED1,
9 A" X  _9 K* h. ?" |1 M                .name = "user_led1",
' H: _% t$ g- A2 R. K, U                .default_trigger = "default-on",: C# X6 S& B6 i- r% S# y& I/ \
        },
" T7 ~# z* Q; T/ Q2 V        {2 l1 {' b9 ]% N- E
                .active_low = 0,, P% {2 G1 z* q: D. T' Z8 _8 o3 Y* j
                .gpio = DA850_USER_LED2,
  z7 ^7 ^1 ]2 w                .name = "user_led2",3 L1 D8 ~( e/ M" Z) H2 A
                .default_trigger = "default-on",0 e0 [' H) k% R+ m# d$ ?# C& q
        }," p3 ?2 I/ ]3 V1 p2 Q" B4 F
        {# i$ u7 o! [5 F
                .active_low = 0,
0 k& s0 y) F$ G% |4 v- a                .gpio = DA850_USER_LED3,$ C3 @. B$ A. x) ^: Y0 d9 l
                .name = "user_led3",+ P! K" M& e* v8 O
                .default_trigger = "default-on",
/ m5 a3 z' @7 B7 f/ U& C: o/ z: _        },; R/ z) I. f2 k( w/ w1 j
};, o4 u% l1 d& b8 _& A# S
; g  c+ P  _% _" \( d+ u  ~# N% T7 u
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- J$ I" J. b' J, Z9 K; t5 I! x        .leds = da850_evm_tl_leds,) R# I8 A+ t; l* i! D
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ |5 K8 ^. k+ K5 H# y};4 W, G$ f2 n2 s
+ b* \2 _! F0 G' f  {6 Z* T
static void led_dev_release(struct device *dev)
; X  |! j" z# m8 G# _; g. S$ j{0 w- v: Z; Y0 r4 M$ m
};4 ~! \3 E; M3 M& b
( L0 f7 t+ O+ ^+ U( d7 a& M
static struct platform_device da850_evm_tl_leds_device = {
6 o; y& r$ m% F' k3 b( C/ g; m        .name                = "leds-gpio",1 T( Y: J* I) z4 z
        .id                = 1,3 t# {+ Z! Q- {6 Q! N9 Q
        .dev = {
. D+ ^( _5 i; `% t, {$ e                .platform_data = &da850_evm_tl_leds_pdata,
* _: b# A5 W' ^2 t, w6 I                .release = led_dev_release,# b7 Z' X/ v  Q5 r8 f3 N6 t
        }+ q. H! @. w4 l
};
* T: `; p" K1 g5 D- n! g* J
8 _9 B6 ^4 e) |6 M' v2 kstatic int __init led_platform_init(void)
% }7 n% b: v5 }{$ y4 X" t0 ^0 X3 @! b7 O! d
        int ret;
1 ~8 g1 I* o% \% V5 T; ^4 `#if 0
: ]  j3 @7 d  g" {. I8 U) G8 b) G; n        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- Y3 p2 \+ J% i- ~) P! @) O$ d
        if (ret); [! J$ p9 e1 [4 n
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ m: L6 `: _; Y4 P* @0 y. y. I                                "%d\n", ret);3 s1 q$ L! d7 A. G8 H* u
#endif
! k$ R) ?; d5 G% o. H6 _6 R) m- y        ret = platform_device_register(&da850_evm_tl_leds_device);
: U+ m- Q) K- M: ]/ ~1 \9 t# u1 M        if (ret)
% \. M" m& {, A8 x" p                pr_warning("Could not register som GPIO expander LEDS");
" c) u( t! L- ?8 `  _6 v, W5 K8 P        else
5 d1 S& P% Y" F) g$ _                printk(KERN_INFO "LED register sucessful!\n");4 w+ l' Z. N( M6 }( e$ S7 @
6 s5 i# w2 X4 u! M+ e8 N5 `
        return ret;
" v4 `+ J: j- I6 ?  _6 ]9 r; O}5 B$ s) ~  x, U7 a, ~! }
( y; `# ]8 |0 `- D$ i) |
static void __exit led_platform_exit(void)) }- j4 g$ U$ _( W) v$ C
{. j" b# m: z4 a3 C. Q/ O2 A+ b
        platform_device_unregister(&da850_evm_tl_leds_device);+ i& k  F! ^2 ~: X% R
% B) C7 z' ?8 Y7 w" C! q
        printk(KERN_INFO "LED unregister!\n");
8 E4 Y' F; W9 [) N; F}' _2 a0 U2 _, O2 Z8 P

, \% }/ U+ }1 `. `8 E/ lmodule_init(led_platform_init);: T0 P. G! E% f0 L- y( B" K) o
module_exit(led_platform_exit);
. r$ A; g* Q: h6 e( T' d0 I) c' `/ l
MODULE_DESCRIPTION("Led platform driver");0 a1 H, V+ N3 i7 `; @; q
MODULE_AUTHOR("Tronlong");
& n# S8 \+ i. b0 y5 |' w9 CMODULE_LICENSE("GPL");
' U1 U  M6 R) J) @( F4 `) O" W7 k! R8 n2 h# f& Z' j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 09:50 , Processed in 0.039850 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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