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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. I9 G2 Y, |4 S' s
#include <linux/init.h>
! t/ W2 Q6 ^$ n9 l#include <linux/module.h>3 s7 v6 t# O- x6 [+ w
#include <linux/kernel.h>) }2 O$ o" @# D
#include <linux/types.h>
9 B7 r$ \1 o3 A% f#include <linux/gpio.h>
$ u0 n; J" e2 E3 o#include <linux/leds.h>
/ {- u/ A% d: P( \#include <linux/platform_device.h># `' ?  p( M& i5 E

3 A$ G. Z9 [& h/ F#include <asm/mach-types.h>
! {# l/ k; x  u5 S$ W3 r- G#include <asm/mach/arch.h>9 @1 i8 [+ z! P
#include <mach/da8xx.h>; k: v4 R) g" L& L' w
#include <mach/mux.h>+ o% O* s+ H4 U1 B
4 i  ]/ v) h* _* K0 T3 E
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 H! O8 v7 c, i- w+ ^) Y; b0 G  a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ Y6 S% D) o3 ]( k+ I3 N* C# y  ?5 K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' ]8 Z' J9 w$ m' i
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* z0 U. n. N% J$ K
: f4 a! t5 m3 E/ W/ y& Y$ p, T/* assign the tl som board LED-GPIOs*/
4 K, U) `& b! |6 Lstatic const short da850_evm_tl_user_led_pins[] = {
8 U; L8 e1 q/ Q' |0 v8 y        /* These pins are definition at <mach/mux.h> file */* i" {& i8 s1 f. d
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 Y) b$ N) S. x* I8 z& Y( `* M) T        -1
9 C# d; N$ ^5 K0 }% }};
' b4 B; Y8 q5 _; F2 |7 }* G
  y: r) o+ P7 I1 Q/ E. wstatic struct gpio_led da850_evm_tl_leds[] = {  K! I' _+ i9 N; l0 z
        {
2 z4 {% M' S, h- h) C8 ]' W                .active_low = 0,- K6 e; X: G$ R! o; s
                .gpio = DA850_USER_LED0," K% d8 l3 \6 `5 X9 \
                .name = "user_led0",* C+ B/ E& H) Y8 F: l( p% `: b
                .default_trigger = "default-on",& @7 z, K2 D" b2 F% v% I
        },
; w7 b. ]7 W. D$ `) Y9 u; \        {
) s+ G( H/ ^$ r" S4 P3 v4 \& f: O                .active_low = 0,
) E" D, @  N2 L: h7 ^3 Z                .gpio = DA850_USER_LED1,
9 A0 p8 b" r# |; L4 Z                .name = "user_led1",
; T& c3 G% h" }# ?( B# U2 x4 p                .default_trigger = "default-on",4 M. A0 K: g9 H) N& @
        },
5 |6 u( l+ O3 J+ B) q5 k3 n        {
" u) b7 O: n2 d" A; Q* M1 ]                .active_low = 0,
6 `: s+ T. o* i5 C4 x                .gpio = DA850_USER_LED2,
2 I8 A( u- w+ J9 O" m                .name = "user_led2",
% N, V; |* J' T; t' v. ^* \                .default_trigger = "default-on",( e4 h$ h0 h" D3 a- X
        },
8 B! q. _+ {5 j3 W6 n' }; K* O8 w        {
, Z- z7 _8 k$ z" }, l                .active_low = 0," X% L( c) [* D  C
                .gpio = DA850_USER_LED3,0 g$ C: E- d4 ?  f8 g
                .name = "user_led3",
" T2 s+ J0 Z5 Z" b$ B9 V                .default_trigger = "default-on",0 I. b7 n# C- S$ r
        },
$ x% F3 G6 H8 [6 z0 _};
; Q3 h) H3 T+ U% K( i$ s/ M# f! r2 q  u, s
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  o* R; w" _+ i% }% N/ U1 b; e
        .leds = da850_evm_tl_leds,
6 m5 w) ^" V: Z- U        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. ~9 d% Q4 K- }0 }};$ O  |4 R* r$ `7 W
, V* ^+ ?& A( R( g* a
static void led_dev_release(struct device *dev)
4 @) i& ]8 U: A, H7 V6 z{7 d5 U4 p0 F5 G3 y1 Q* o
};1 |2 P/ z( B( E; S* D' O  t- R
$ k5 z/ z$ T; p" T' g2 y
static struct platform_device da850_evm_tl_leds_device = {3 J5 W9 [" Z# }2 m$ D
        .name                = "leds-gpio",
* c0 }7 @2 x- s9 s        .id                = 1,
  l5 O2 W0 U: Y! W        .dev = {
/ |$ X' b# r' n9 o* |! O                .platform_data = &da850_evm_tl_leds_pdata,8 @  q1 k9 \$ V8 r
                .release = led_dev_release,
/ H& {# b; ^" c$ n6 I2 i        }1 N& C, J+ O7 A! D0 t; t
};( k# R0 J, j% x, R" d- g

6 E5 m) D$ u3 estatic int __init led_platform_init(void)
" I8 q2 Q0 `) J0 p{
2 H' f3 `. A$ c& G7 u        int ret;
% i  p3 o: \/ `; ?$ o' s' X#if 0
% a9 I$ M% t( v        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ g3 F0 C! Z. o& ?' M7 g! {
        if (ret)6 y3 S% V# F* G/ [7 {3 d
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") G- H2 i6 N5 p" w1 i) a1 P" |
                                "%d\n", ret);
+ B1 j( j6 H) ^! J/ [#endif
6 ~- r1 T) N% a6 Y; R        ret = platform_device_register(&da850_evm_tl_leds_device);
8 F+ M4 @; s# q9 Y4 `  y6 ^        if (ret)
1 I, J1 \6 K/ O4 V) a                pr_warning("Could not register som GPIO expander LEDS");
1 M; o3 k3 ~9 E* c& p% u0 y/ o! i' a        else' Q! ?; N) H; o0 b1 d7 V
                printk(KERN_INFO "LED register sucessful!\n");
% O+ w( Q8 `# E( f: R  e) I- e/ `* {  X9 k; V, @9 Q
        return ret;
7 g6 {, G  s* J}
' B9 j/ o3 x( G& V: j) v* l; _) B! g% A" I
static void __exit led_platform_exit(void)! u  I. }; h& T" M6 a
{
+ S; h: f3 T+ a6 h* P0 ~        platform_device_unregister(&da850_evm_tl_leds_device);) l! W" ?1 g# B& |1 N4 q

8 {, Q; ]7 E5 O5 I: I0 i3 v        printk(KERN_INFO "LED unregister!\n");8 p- K3 M9 Y( k3 T; m  g6 K
}
! i! \) R$ _( |3 f1 V+ a/ V% f# b* a( m2 L+ r3 K$ R) t$ B0 F
module_init(led_platform_init);
' L8 M0 a' O9 W, W  S/ H& f, pmodule_exit(led_platform_exit);0 {9 F6 o3 Z$ b0 e5 V

+ m6 D. ]  T$ W1 C- P5 n  c; _MODULE_DESCRIPTION("Led platform driver");  g4 t4 I. s  I1 J* E) F& Y, G
MODULE_AUTHOR("Tronlong");
2 O  W$ E7 g* G' d3 \MODULE_LICENSE("GPL");
! e* C% y  O0 v
) P  k% j% j4 d5 [0 H6 @5 m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-30 22:32 , Processed in 0.040260 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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