程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 b2 `$ L- S6 E4 O5 |0 z
#include <linux/init.h>
+ }& O- k4 [. B6 N#include <linux/module.h>
$ S8 ^5 d: J/ b) c#include <linux/kernel.h>
' S8 p6 X4 M/ J2 E9 ]* O+ H1 {+ ?#include <linux/types.h>
; I! V5 g2 R- W. M) e9 W#include <linux/gpio.h>
- o" P( ~* `9 I! I% B; r#include <linux/leds.h>
( u" c3 G; x& f/ i0 T- U#include <linux/platform_device.h>6 k8 I1 \" _3 I" A2 H' G$ x
# {* ?8 G* v# ~0 j
#include <asm/mach-types.h>
8 t7 k" K  H; H8 l6 V* |* c3 D$ u' h#include <asm/mach/arch.h>6 i0 Z6 O+ b- o+ d6 P
#include <mach/da8xx.h>& ]- S: o4 g; ^' L: a6 s0 a7 @
#include <mach/mux.h>
% V2 y3 x0 P" G. Z) e% ]4 H# O. |# q! J
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 |0 D+ H% B) c7 q& f/ P6 [+ i
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 q! y$ ~, @7 ^- Z/ [( {: O
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 ~" }( D, [" r3 y* h/ F, y5 ^& r#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- i8 e1 j1 m$ E$ r0 z' L9 s% K( d0 X" {1 u* r" R" O
/* assign the tl som board LED-GPIOs*/5 E& t" y$ I( k: @$ L( B, e
static const short da850_evm_tl_user_led_pins[] = {
, k, |4 l$ G0 B5 d3 k        /* These pins are definition at <mach/mux.h> file */+ G" ?$ [1 v* E: f  ?& o& t
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. J( L7 ~, P+ n9 e' M- r        -1" V( l: S. n/ d: V, P; k: p! D
};  f6 r! D% H. g: Q( `: V' [
6 v0 h0 @2 Q8 x8 p, Y' T
static struct gpio_led da850_evm_tl_leds[] = {( }: B! F$ j3 w6 D
        {4 _: ~5 r1 G3 b, |: j
                .active_low = 0,$ P1 ]! ?' T, n) i& c7 x( c
                .gpio = DA850_USER_LED0,
( y# \/ _' j. [! \) X! p. T: f                .name = "user_led0",
$ U! R# ^) c& U* o) d6 \3 ~                .default_trigger = "default-on",
% v" w0 G, y9 A        },6 W: I+ L6 }$ B) b
        {, q- x/ n' E. Z0 @9 z
                .active_low = 0,
% q( |7 [) S' B' M" l                .gpio = DA850_USER_LED1,
) W. Q/ ?/ g# k3 z                .name = "user_led1",4 L% t8 _" h) G
                .default_trigger = "default-on",
' A" a( s  o0 G, i$ G2 a: V* A        },5 s6 K  A8 Z! F5 ~  g; @" y
        {
/ [& N6 t: `+ y" F$ w* }                .active_low = 0,7 s. e7 W8 Q1 f' u' G
                .gpio = DA850_USER_LED2,0 B0 @& b, }' a
                .name = "user_led2",
2 S+ e) m. E' d$ Y4 f                .default_trigger = "default-on",& R  T) c7 N! c
        },
& l( r: Y# r; x, _4 K+ @        {$ g5 ~1 I5 w" X
                .active_low = 0,* ^) f8 I: A8 }8 G8 Z( a
                .gpio = DA850_USER_LED3,# [  G8 s4 n) l/ j2 ]- u# q
                .name = "user_led3",
% _" o: }& T1 c2 @! l5 s                .default_trigger = "default-on",( s: `" _* q+ G  x
        },) S; E2 y9 _& h5 G  |+ w
};
& E0 D! j3 C5 ?! l, \. U8 Q# g7 h' ^% p8 G0 _5 L" O! }/ w
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 O% z0 N4 }0 l$ Z2 q
        .leds = da850_evm_tl_leds,6 L  M! i. r& R* ?5 n" M  O" p
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ q& v* D! \& P7 r0 i
};+ Q5 G1 }( |! S# \7 ]+ ?: f; h
+ X/ u1 k) D: x0 d8 j/ l
static void led_dev_release(struct device *dev)4 h; b( j4 {+ t: M5 S
{
# E5 @' O4 B* P/ ?: N- z# I};5 B+ b, e; j* u2 J  S) |1 @% n2 [

  `, m* J) F& p3 G* c1 O/ [# fstatic struct platform_device da850_evm_tl_leds_device = {
+ B* }2 v6 l9 `6 U) o        .name                = "leds-gpio"," Z6 N/ n0 t, h% x% G
        .id                = 1,+ X. S4 l9 s' e" _- i9 D
        .dev = {
6 P9 N8 f* e4 d( d4 b                .platform_data = &da850_evm_tl_leds_pdata,
5 S5 i0 }7 S0 o% i/ X9 n) Z                .release = led_dev_release,% U5 Q1 {2 Y- E( F+ h
        }& S- n/ N! N$ ?
};6 n0 q# O7 y; d% U0 g: p

# S, T: O; S1 p, b+ G2 @: Sstatic int __init led_platform_init(void)
6 ^/ z! m$ R+ t1 c{; l! ?) l3 U# N- c
        int ret;
+ F3 G; u8 p2 y) V" M#if 0
9 x6 V5 R0 W" `) E$ ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% c. u& n' r- [5 A
        if (ret)
5 }5 `. S5 I  b& D- u                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 i$ H( Z$ R+ G) C, N                                "%d\n", ret);1 i7 }0 s( o  ]7 l$ o9 g8 L
#endif, `3 F' H' O+ v- k7 y" {
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 P: {# z* F9 C3 T! ]        if (ret)
& N4 S5 p: Q0 u                pr_warning("Could not register som GPIO expander LEDS");
  c9 G* D8 ^& `5 W( ^4 I* c8 p        else1 l- `: ^  q5 c" q: a
                printk(KERN_INFO "LED register sucessful!\n");* i3 g% T9 `' j4 \8 P; b3 B
$ ^/ @! F6 W* }/ u" H/ A
        return ret;
; D& b. L) G: R  i1 Y" v}9 o) Y0 U/ P4 i4 [$ F

, S, e0 Y; W* j2 Dstatic void __exit led_platform_exit(void)
: }9 y% F( o- @; m$ H, h{4 u% K0 \7 m# c: \1 v. L
        platform_device_unregister(&da850_evm_tl_leds_device);# Q7 K4 y- w( D8 y

; b( g) I1 q- q4 h        printk(KERN_INFO "LED unregister!\n");
1 y9 o6 r& R  K}8 @9 h( J' d2 G+ o1 S4 X6 I; @, U

( l7 ^0 B& D- T& K. A4 Amodule_init(led_platform_init);' F9 P7 ?! M" ]2 d" F" `" w0 l. O
module_exit(led_platform_exit);8 b9 A+ T) s' }8 D
- r! Q+ f1 R+ A" X# v. D# d
MODULE_DESCRIPTION("Led platform driver");" k. p* x4 I: e
MODULE_AUTHOR("Tronlong");
7 Z- x5 f( U! l) |3 |5 r* vMODULE_LICENSE("GPL");
6 O8 c! ^- E" U& v
" b$ ~7 u0 R! C) V* \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-24 12:30 , Processed in 0.037898 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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