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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 u% Y1 @% r0 W8 k( W; K#include <linux/init.h>
+ x. \: j; i$ M5 X3 n#include <linux/module.h># a8 n% @- B' E+ u, F, s
#include <linux/kernel.h>
8 j9 D. s! p& _( x+ a! x5 K$ ?#include <linux/types.h>
6 V6 B0 W' a. m/ I" y#include <linux/gpio.h>
, [# A2 m6 B$ P. Z% S#include <linux/leds.h>
* {; }1 C( I+ u& O0 @; K#include <linux/platform_device.h>4 \6 z5 r! x, V6 p4 _
. c& y- S, i" c- }2 G
#include <asm/mach-types.h>4 N  _2 G; b+ A1 o3 c6 P( _# V7 m
#include <asm/mach/arch.h>/ @2 `+ E4 s% C+ r
#include <mach/da8xx.h>
) H/ }8 r3 T7 |' x& D' p& ]7 ]#include <mach/mux.h>
+ ?5 a. m2 G3 S, k+ V
7 V, T9 t5 `8 H4 P2 Z, k; g, K; l#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); @3 i: n5 \+ B6 L/ z5 K
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* \' T& ]6 Q* b" t# K# i0 M  `
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ E1 |$ l! q! B& k
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). o- ^4 ]7 y& A* S' O( J' w
3 s+ {# ?" L( I3 p, \4 C. B' M7 d
/* assign the tl som board LED-GPIOs*/- y' S  L2 i  G- e0 W6 {9 i
static const short da850_evm_tl_user_led_pins[] = {
7 g7 M9 r8 |1 H# H        /* These pins are definition at <mach/mux.h> file */. D0 f$ Y* P7 \! i* g9 d& T
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- @% Q8 r% Z2 e+ m/ c8 {, v* b
        -11 ?$ F. k% E8 Q
};
) Q1 i4 _: U2 g+ L2 V3 Q% a# |- A
( l" N7 e. m6 E! l" J: Wstatic struct gpio_led da850_evm_tl_leds[] = {
' \6 [/ q4 V5 L5 x* J        {
4 y% R  E# n. M' m/ I( }* x                .active_low = 0,
! B7 Q" E4 j# b* o) g( \. H2 ~, [                .gpio = DA850_USER_LED0," r# ~9 c$ i5 v: @) A; y
                .name = "user_led0",% H: Z0 n$ i% ?- S) A
                .default_trigger = "default-on",
- @/ I! ?6 M) ^; T9 H& T! Z- W7 T        },& Y% y. L0 o( t' y  S4 g
        {
  T7 W& M$ M6 q6 p5 z. g                .active_low = 0,
' n: ?1 S* h8 c* K# n: z                .gpio = DA850_USER_LED1,' d* ^1 b- ~' c. J* ~* L# R. V
                .name = "user_led1",7 z8 K) _) O8 ]) `% E
                .default_trigger = "default-on",
# j3 o# G7 B; c5 Y0 m! a$ T1 K        },! J  n$ h0 Z  o0 X
        {
, W; d7 s- \7 j6 _                .active_low = 0,& w1 N# n+ v& @$ e+ B& X% y
                .gpio = DA850_USER_LED2,
1 i! }* R) Z2 S3 J* ^                .name = "user_led2",
: d* `5 C+ o: S$ d' \9 o" u                .default_trigger = "default-on",
' E! D" [+ V4 u! x: O" J# [        },
- r6 j# H: Y5 O1 Q  b# K        {
4 V8 `$ M4 b9 `2 `                .active_low = 0,
1 Z8 S2 x- R8 x3 A. {                .gpio = DA850_USER_LED3,9 s8 z, S$ X  }3 F
                .name = "user_led3",
- a. [8 f6 u  U; r: u. R                .default_trigger = "default-on",  E  _4 F7 R# l5 n+ Y: f$ H; E3 @
        },
* o4 x: s& U9 }};
( n) c+ N& H6 O' c/ Y
3 L9 G0 Q! N1 ]static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  m& u! k. J7 [6 d, w. F
        .leds = da850_evm_tl_leds,
1 z& P' X& D' m7 A& b+ [6 v- o" E        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% O6 E) X' `8 D! [9 R- U
};! n- j; H7 ?5 U# d( U2 T
. w, R) t* [$ e( {9 l2 ]
static void led_dev_release(struct device *dev)
, `6 j4 X' E+ y8 S0 A7 O' Y8 E{6 ?1 }& k- m0 g, v' w8 D5 r* j
};
/ a( p1 _/ w/ @0 p  U* ^& r0 E8 @$ x+ v, x
static struct platform_device da850_evm_tl_leds_device = {  D9 ]8 t5 i9 P& c
        .name                = "leds-gpio",
$ Z  Y# I/ v5 ]* T        .id                = 1,
& @7 Z& \! v; T6 Z2 b        .dev = {9 c6 |/ [7 y: U9 t, L% R8 f
                .platform_data = &da850_evm_tl_leds_pdata,$ s+ M* h4 e( |0 U) j
                .release = led_dev_release,
. E. S7 \& E  C# F: v        }4 ^- l+ t1 O: e* s4 Z1 S
};+ L6 D" G: R  V: ]. P) u, B7 F
) M8 F  [2 S* V& W
static int __init led_platform_init(void)
& l. t: M4 v3 d# u{
  a/ D5 @% n& M        int ret;, W3 h3 M! [2 P7 m+ J
#if 0
; B7 J( v5 V% J7 }& }. I8 H  d        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! _8 L. @, a& Z$ a% u) i# D
        if (ret)
* i: \# D: i; d6 Z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, H- U. C' f. f# g2 t; v                                "%d\n", ret);2 B) F: Y* w& j7 [+ I7 `3 p; O
#endif
2 W' t! R8 T  v- |6 l2 ^; S( n2 x        ret = platform_device_register(&da850_evm_tl_leds_device);$ d# y4 C: [8 X6 `
        if (ret)  G! {2 f& Q$ s& v9 `
                pr_warning("Could not register som GPIO expander LEDS");
* f' W5 W, M* _6 l* m) t        else4 k2 y( g  Q  p
                printk(KERN_INFO "LED register sucessful!\n");
1 r9 p5 K7 {% B4 D5 c8 F* R. }
6 ~1 y; ^6 `+ _5 u        return ret;; [" q" Y) W( y( `: E
}& a; t0 R; p8 F8 F0 V2 J6 [

0 b4 x: W1 Z+ fstatic void __exit led_platform_exit(void)% e6 ~' R4 x+ P: v. s/ _" _
{
; n: T+ B, O) z        platform_device_unregister(&da850_evm_tl_leds_device);  j1 Z  t1 E3 V3 r( [6 c
+ O# y( V: X5 ?. ]8 z8 @4 H6 I6 w
        printk(KERN_INFO "LED unregister!\n");
/ g' q% B( G  L* }8 i1 m}
# ^  T; V3 V- w: F& ]: d9 U. J. ]& p. ]2 Z& f: @  ?) Z! ^
module_init(led_platform_init);
0 s! v! f, Q1 a5 t- omodule_exit(led_platform_exit);' p0 ]' G$ o- x! }, l8 o" I1 [
# ~; [( R; c0 O* h
MODULE_DESCRIPTION("Led platform driver");
  E2 @( S5 J8 K; j- s) m7 tMODULE_AUTHOR("Tronlong");
; C. f2 D3 _2 t9 D8 r7 ?MODULE_LICENSE("GPL");
0 E" z) x; O5 T! v) Z" M" k
% E2 T6 J) o6 L( p) p: c, o) Q: }$ z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-19 01:50 , Processed in 0.040302 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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