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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 _! D) y* _7 v8 D+ x4 L#include <linux/init.h>/ _+ n) }+ Z% R2 e- W  _- f
#include <linux/module.h>! g, c9 {; t) F" y0 x
#include <linux/kernel.h>  K3 W' x8 m3 Q4 f; L! V3 c; _
#include <linux/types.h>4 r* M" z& e, R# N8 Q, l. N
#include <linux/gpio.h>1 S$ A* d* y4 Q! \
#include <linux/leds.h>& S( ]  `! P! u2 y) n8 t5 |
#include <linux/platform_device.h>: h5 d4 ~* \# T! u8 w+ N% ^
0 Y" n2 k0 q' p- J2 X( L2 O- n
#include <asm/mach-types.h>& X' q1 M6 \* c! @: O. A; Y
#include <asm/mach/arch.h>7 p3 Z. p4 B; w8 Q- q. y( i. U
#include <mach/da8xx.h>, O4 h& x2 q0 D
#include <mach/mux.h>
, i0 H- L/ m2 r  `/ p' S+ l" k; j. t) P$ J
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& T9 s) J; [7 J# E5 ~
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* s( j1 T, \7 O6 M) d* w
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 ~6 g% B5 I1 c4 W7 [8 {% z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( _, s' ?6 G! w1 J! B4 N& P
  t! s) W  y/ \! Q$ x/* assign the tl som board LED-GPIOs*/
- k# P( ]! _& |4 Y0 k' C/ p$ [static const short da850_evm_tl_user_led_pins[] = {
# U* M- e- G8 U7 t& [- `        /* These pins are definition at <mach/mux.h> file */
; f. q3 q; ?3 r% @) r+ X/ {. B        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 Y) t/ t# c  u' e        -1- `# r3 J  T2 ^* J7 a# E
};
7 o# X6 L: j# h- y7 C
3 v; U8 |  u- T! X+ r# X1 b7 Ystatic struct gpio_led da850_evm_tl_leds[] = {& J$ A6 e2 K/ _. ?3 e" z; L
        {: E* L' Z0 t" E
                .active_low = 0,
0 F. S. E. b0 ^4 A                .gpio = DA850_USER_LED0,
' R( u# V% ^7 H3 {( }5 b/ X                .name = "user_led0",
1 D1 H1 f, Q+ j: }3 S                .default_trigger = "default-on",
8 R# m2 z0 X( C! g( \" G. ^! ^        },
. K0 X4 z" R8 F( v8 G% H        {
! x# l5 [6 s& s7 P1 |/ N* E! Q                .active_low = 0,
1 W" h3 A9 \/ y- Y5 M                .gpio = DA850_USER_LED1,
5 v3 R' [# g" h# a3 Y# R  E                .name = "user_led1",4 @# D" f  j4 t2 I+ N' P7 w
                .default_trigger = "default-on",* L! |1 c" ?' K+ V8 @) Z
        },
$ `8 d; s2 B+ v/ J        {" K1 X' \$ M7 G( ^. Y( i
                .active_low = 0,
+ X" k: e2 j- B$ z                .gpio = DA850_USER_LED2,
- f2 y" T: u& j' ^6 h5 D1 k, P                .name = "user_led2",
! t2 A8 {6 ]9 \                .default_trigger = "default-on",! |) y# d8 O" w
        },  C/ [7 M8 s- A& `
        {& l% C9 r( s1 L! x
                .active_low = 0,
5 ]' x: R: l, b& x6 X                .gpio = DA850_USER_LED3,
4 _" t& I( e5 q  r8 ?6 O; j8 I                .name = "user_led3",
1 I  I% y  h2 o: H2 S8 b0 o# D                .default_trigger = "default-on",9 p2 W. [+ U) `) ]$ b
        },; j% O' _7 V7 d+ `& ~: d7 e
};& ?" J! y  Y/ r

+ V; E& n* F/ a' f& k' gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 ~$ M! ]6 U3 x  U: a6 s
        .leds = da850_evm_tl_leds,! z% ?  M& t. y* \' _( D4 Q* f
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 }" X: a' a# I" a. G};
( G9 }/ \1 p: I  x* t1 g- s. V! `9 f" O
static void led_dev_release(struct device *dev)
! r* ^/ Y6 d: M3 W{! |0 z3 b8 L: M/ ?- v
};7 r6 U8 T7 s6 s, N6 R$ p
# d* _4 V: B/ U2 y: Q8 X( }' L- ~
static struct platform_device da850_evm_tl_leds_device = {
3 s! ?% r. u- g' J        .name                = "leds-gpio",% U: @; L9 b1 r8 a2 Z* ^
        .id                = 1,
1 d5 @& K, l2 Y3 B        .dev = {3 S& h$ {' ]! B" L, R8 J3 X8 `9 b; Z( d
                .platform_data = &da850_evm_tl_leds_pdata,
% ]5 g& [5 J% w3 ~, Y' p                .release = led_dev_release,; G2 Y4 Y4 l1 @4 A, P7 u7 p0 q  `! \4 n
        }
. R& o$ \; b, V' ]};. e2 n7 W& `; u6 {$ a
3 Z9 d% b5 \; u" J/ ~$ C
static int __init led_platform_init(void)3 ], o7 u" F1 I, v  |  {
{
  Z- y5 r, S' n* N8 ?0 y, P/ ]! S        int ret;
1 J- l7 {- F$ }#if 08 f; s/ B3 x8 I4 i8 L* K+ s, R
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( d7 @& ]5 h9 Z7 O2 Z! [2 M3 ]" C- Q
        if (ret)5 _6 p' O0 V4 W# e
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 K4 |2 \' y) n6 W. ^  A$ w                                "%d\n", ret);
7 ~7 S8 P. Y0 I3 v1 H4 V6 G#endif# M" s0 r1 j, e& r7 m
        ret = platform_device_register(&da850_evm_tl_leds_device);
# S3 F* R8 u$ s6 F        if (ret)! [5 V( J$ p, k
                pr_warning("Could not register som GPIO expander LEDS");) O) \# Y% X- Q9 h& c) ~
        else
6 \! \* Y% q5 q$ O8 E" l+ Z3 q8 C- ?                printk(KERN_INFO "LED register sucessful!\n");
7 t4 D9 K' _( k
+ d  A1 T: h0 U2 Q        return ret;3 @! q* `( @9 O/ x! s
}. P# c) t5 Q# h8 G
/ ~- h+ ^: a$ ]; x. i* j
static void __exit led_platform_exit(void); v( p2 K$ W6 W. |! m4 K$ f
{* E6 h8 F! Y7 V( Z* i/ V5 h
        platform_device_unregister(&da850_evm_tl_leds_device);
  N) ^$ I4 A7 m2 B/ n/ [0 N5 i# T
9 v% b% c7 w0 Z# ^- D* ?; ]        printk(KERN_INFO "LED unregister!\n");
6 v6 F# y% F2 O4 A: p}
; T+ o) g2 x- W8 d2 n+ l$ U' k% i, T  w& G$ G4 R
module_init(led_platform_init);
6 J& n  p( i% hmodule_exit(led_platform_exit);
- i+ `7 o9 \0 O9 M' M4 M
% v) `9 V6 n- [MODULE_DESCRIPTION("Led platform driver");
6 ]5 ]: K* _& c+ EMODULE_AUTHOR("Tronlong");7 p( U. ~8 L) B" y" j
MODULE_LICENSE("GPL");
5 c% e9 @1 P* ~3 k: u
1 |. K* D' N. q# C0 @, O6 W) `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 22:34 , Processed in 0.046787 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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