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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- y! G% P( c/ G* u! q1 k! h' l#include <linux/init.h>: f8 b+ M! Q, e9 P) ]/ K) [' _
#include <linux/module.h>
& o2 a6 ?) \% D3 E- m#include <linux/kernel.h>
( y( c! Z3 |( a#include <linux/types.h>( d$ \; g% N5 u, B4 a
#include <linux/gpio.h>
1 F$ t- w* x: _$ c" [, M3 k#include <linux/leds.h>( N& o$ O5 Y- ?+ e" ^
#include <linux/platform_device.h>9 R( K) T0 D# W4 j
1 A: M$ i8 y3 t8 }" O
#include <asm/mach-types.h>  F/ f6 t- t) f5 \$ y+ J
#include <asm/mach/arch.h>+ ?, z5 Z5 K2 N1 {! i( \
#include <mach/da8xx.h>
2 e7 z. X: `4 o- O2 x# C#include <mach/mux.h>
/ u  \3 M; i6 F0 f' c
7 a6 V8 `8 F: U7 b( s. }#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ i% {% ], [, f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! w! J9 i+ b: Z5 ]" J# n( a- y0 \, C
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- S& I6 E) o7 g3 G8 y" [
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& V0 i% X! g; k: ~! x- b
: |! ^* K5 _! l9 q" X
/* assign the tl som board LED-GPIOs*/
4 W" g9 P1 ~# i4 M8 Mstatic const short da850_evm_tl_user_led_pins[] = {0 r' T; P' p8 q$ Y
        /* These pins are definition at <mach/mux.h> file */! c$ [0 z' m# P* J& s
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 _. y, r( U5 d- k  u  q: O' f        -1
& {* f" }3 e% e};
# l. r: O+ m: y6 b, \' X
  @, V) q  {" \: C9 i: ?static struct gpio_led da850_evm_tl_leds[] = {
1 l3 V  W/ _6 D9 ]& w/ N' R        {* O+ A6 }* d/ o) N, T
                .active_low = 0,
6 a, t, b# p* U% W                .gpio = DA850_USER_LED0,- Z- F; O( s, h) f5 b+ Z2 D
                .name = "user_led0",, n/ T+ ]' F) H
                .default_trigger = "default-on",8 Z: c" ~. P& p' g. ^
        },& h, h: |& M+ |4 u
        {
& S7 Q* ]9 i. [( q                .active_low = 0,2 m6 r2 [: x% k; D
                .gpio = DA850_USER_LED1,
  s5 m) q! V- ?* L( e  M                .name = "user_led1",
1 Z$ G% n" Z% ]* H' R, h" r                .default_trigger = "default-on",/ z9 t5 A+ h/ u. B' n6 t! l
        },
2 }7 q3 R( H( U* m        {+ p/ Y# X+ _/ g* k
                .active_low = 0,! Q( _. C! n' q' m: G
                .gpio = DA850_USER_LED2,4 q  c7 d, m1 H. {- {
                .name = "user_led2",. O- [) I" H1 s# c. O4 d
                .default_trigger = "default-on",
1 n( S8 _& x- C' r        },) Y9 x' X' u6 r; H- _9 g! d
        {
! [- v8 y0 n5 S) Y                .active_low = 0,- h) l! U% L- \+ {2 r# B
                .gpio = DA850_USER_LED3,; L9 {: K+ Z4 p( E) O
                .name = "user_led3",
! G8 D( P) @& Y, S7 M0 G# g) T. T. g3 P                .default_trigger = "default-on",
: d+ J& u( r4 @' y8 k) b% I        },
# t' q! T; h1 F2 F+ s- _8 C# L};
: \# z4 Z8 |6 ^/ F6 `# n
9 q1 b! W$ M0 E" Z6 Fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; {6 G9 @" J4 ?9 H8 L! v7 ^3 f/ v        .leds = da850_evm_tl_leds,
4 R; g! D% L( o/ |/ E! c/ \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* k7 n" \) ~0 Z- H};5 n; b1 k9 b5 Z* U; i
4 k" {- s$ r0 j) d& D; ~
static void led_dev_release(struct device *dev)
) G6 @. R% \: W9 V! c9 K{% I* C! Q/ Q; e& n
};
: O3 N  r8 _! [$ K0 p) A& l3 F" R4 I2 P. Q( w  x" A
static struct platform_device da850_evm_tl_leds_device = {
( \0 T& s! a2 [. I        .name                = "leds-gpio",2 f  n+ u' z0 o
        .id                = 1,! n1 e) W% D, a8 t3 r
        .dev = {
2 ^5 u2 u+ d/ q3 F/ \                .platform_data = &da850_evm_tl_leds_pdata,
& w7 E: r& D" X; U4 z) G$ E) R                .release = led_dev_release,
# ~2 T  c4 ~  a; p* r1 z        }
4 j3 _5 s- o' U9 v/ i7 U};( U! g  l  Q' f6 g4 \5 U, T5 T* r

" [/ A* a) R3 rstatic int __init led_platform_init(void)
0 B3 O  Z" o1 H6 O{
- a0 W8 N3 T* j7 Z8 n4 N        int ret;
9 q5 @1 j3 F* @. C#if 0
$ q* d7 V' \/ f7 x  P% j) R2 c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& m. j" e' X/ F* s
        if (ret)
! T9 z$ T% O$ q' t% a9 o                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 C6 x2 R) t3 E, }. X2 Z                                "%d\n", ret);
" ^& {9 x9 ~% J7 w7 Q#endif( ~# I0 @2 G7 B; N7 d
        ret = platform_device_register(&da850_evm_tl_leds_device);5 x6 V3 h" R* y+ j
        if (ret)  P$ c* c3 j& I
                pr_warning("Could not register som GPIO expander LEDS");( }6 Y* k3 {5 S  q# p
        else
( E, \* n/ o! R; _) t                printk(KERN_INFO "LED register sucessful!\n");! s" l5 c+ ~$ K& d  }7 D
9 N9 @( c6 {  K" R4 H0 T  V
        return ret;8 w; [' U0 b7 z1 V
}4 O. z; a8 ]  q

) p" J: E7 H7 I! {- Tstatic void __exit led_platform_exit(void)
( P% j( ~1 ?. ?1 v& @{
$ W9 {! S" ?; |; l        platform_device_unregister(&da850_evm_tl_leds_device);- J8 k9 k% Q; w
4 d# L" b$ x2 w% u  G
        printk(KERN_INFO "LED unregister!\n");
: B$ ^4 r$ U7 z9 I$ M2 h}
0 n# ]8 x0 E9 m5 s  `- `1 k% @$ u# n( t+ U8 c
module_init(led_platform_init);
$ z1 T+ z6 a: Q/ Lmodule_exit(led_platform_exit);; h5 C1 Z# K+ m
9 P, A, N' x, g+ l8 M4 @
MODULE_DESCRIPTION("Led platform driver");
3 @/ [; r+ |" @MODULE_AUTHOR("Tronlong");9 x" v; E4 h. C" ?6 i
MODULE_LICENSE("GPL");
- t* e1 k7 E" j  g& N# Z
$ K) I# w5 f6 r& o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-3 17:33 , Processed in 0.037892 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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