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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% M3 R/ f4 @2 X
#include <linux/init.h>
6 W  Y' C8 i7 R7 c#include <linux/module.h>+ |/ r( b1 }! d% K7 b9 f( t
#include <linux/kernel.h>
! I! E  u; R9 m/ X0 H3 c" n#include <linux/types.h>
. ]- W9 [9 [; m; w4 @) s/ @#include <linux/gpio.h>5 O, q  L) @* D' Q. U3 t7 `$ _
#include <linux/leds.h>
, p: C1 N  o! |' Q1 s#include <linux/platform_device.h>4 p4 S5 w: N: j, C2 b1 o3 l6 R

( [5 r# k/ W8 J# e7 P; d#include <asm/mach-types.h>' u+ B0 _% b6 }7 d; z0 s  M; k. T7 l
#include <asm/mach/arch.h>
5 s; q9 _3 X9 J+ T! m: ?  l$ ?5 B9 A#include <mach/da8xx.h>
. L( ~* C% y) h; J& W#include <mach/mux.h>* D) {6 \- ~" L& p& T- V

9 c+ U, W8 i0 P: {. V# j: Y" X#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 p3 m8 ]% P0 A. W#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, e& m2 V- i" C2 r# I% }#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 q, C6 Y) `' `0 U8 L8 E#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 D" c& _- e/ A+ b  @' D
4 j* O, _- [! [
/* assign the tl som board LED-GPIOs*/% q4 n$ Y. H- X1 ~; s; o/ @2 {
static const short da850_evm_tl_user_led_pins[] = {5 A, D# t/ Z/ }  ?6 @
        /* These pins are definition at <mach/mux.h> file */0 i+ ~" l) o- U
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) ?2 u( w! u1 ]6 ~' E/ x% W9 I        -1- O3 i$ R$ _6 O- c% {! d. G4 L$ f
};
0 a4 f4 k9 H, c% \, Q7 @( k6 x2 e0 `8 G, W1 m4 M1 Q- [& }
static struct gpio_led da850_evm_tl_leds[] = {. H% H) \* ]2 a0 y, @0 X' H, ]
        {" t; r/ X  s# ?8 E4 l$ i9 o
                .active_low = 0,0 w. q- j! W3 T% w# S, U  v
                .gpio = DA850_USER_LED0,8 O4 q+ y" Z: ?8 ^1 Y/ e5 _' U6 ?
                .name = "user_led0",  q2 ~) ?; U: W8 x. M( |
                .default_trigger = "default-on",% N" R. U% M% G* t
        },1 B- i+ u$ A- o
        {
& Y0 M! l  E4 E# p# g" X5 f+ k                .active_low = 0,8 B8 m# ^: ?; w9 Y
                .gpio = DA850_USER_LED1,9 g6 S, h% f8 Z1 [
                .name = "user_led1",+ P1 K8 o- r" v) x; y% z
                .default_trigger = "default-on",
% L+ g, Q% i6 x- a, N        },
- z5 p& O  A1 W8 E6 i! h- X        {( j3 I; k( e+ L6 z$ }( B! A
                .active_low = 0,+ [0 {9 X% P; A; ]& }: ^
                .gpio = DA850_USER_LED2,
" [. e6 v, F" Q' v                .name = "user_led2",; X9 R4 O. ]9 O
                .default_trigger = "default-on",3 |7 i' m" n' K  d$ |2 t
        },2 z- j% D7 f0 E: ]7 c4 I
        {
& [6 @0 [9 I. j1 K4 f  e1 p2 E                .active_low = 0,
  S6 k2 F: z: ^2 \                .gpio = DA850_USER_LED3,+ k" A5 H( |3 u$ x
                .name = "user_led3",
, z4 i7 j# J+ _: Y& o                .default_trigger = "default-on",
# ?9 m: P$ A9 a" O8 c        },
3 z/ ~- k/ r2 P; v};
: j; k8 V: C3 E* F7 {: I  a$ Y+ L# j2 b0 m. I4 u5 O( ~6 I) p
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 N2 z1 i2 J) w0 M: m! u        .leds = da850_evm_tl_leds,
& t* x- i7 c4 ?9 q4 [% r        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' o+ F. ^& N! P+ {! V" U};  e; B1 m' R2 L$ x
2 o  ^/ C( z1 G% I: d
static void led_dev_release(struct device *dev)
* e4 Q! s5 ]: z{+ D; A6 \' E1 D
};0 q9 L6 d/ ~/ A* v

5 ^" L# z& ^, F  l. L( {static struct platform_device da850_evm_tl_leds_device = {
* T$ h. y* r# N) x! S        .name                = "leds-gpio",
& k( E$ u8 E. v9 w: |1 {        .id                = 1,
# E) U; I; E9 D3 o. Y2 x% H        .dev = {! _, \* D' `- Z8 _
                .platform_data = &da850_evm_tl_leds_pdata,
- g, u2 K: e9 s8 i5 a                .release = led_dev_release,+ S5 r, l3 v9 t4 V; I& U  U
        }1 j- t  j  r0 t$ T/ [6 y. E( T
};
6 k0 v& X) E! ]; D& \9 `( }3 J3 n' h. L9 {( u  K+ @
static int __init led_platform_init(void)
2 e, _% X2 Z. u, g/ ~+ O9 p6 w{5 V. {+ \: k5 n4 K4 e* v
        int ret;
6 J, T% [3 k8 _$ C#if 0
& p& ^& f9 C3 N        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* |5 ?8 y( m2 T) b8 p        if (ret)4 m- u$ x$ B# o
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 T* c& ^- h" [
                                "%d\n", ret);4 A6 d- t; R7 Y1 _: t8 W
#endif  }( _4 L# [4 H1 X: C4 w; n
        ret = platform_device_register(&da850_evm_tl_leds_device);
  P$ A! t7 j- Q$ F- x( B, S: N# T        if (ret)
* B( B/ c' F' u2 G% t) _/ N9 x  h                pr_warning("Could not register som GPIO expander LEDS");
" R4 S% u+ w2 ^2 e" J4 ~        else
) M/ x$ @5 H" {* ?! V, L                printk(KERN_INFO "LED register sucessful!\n");0 J) V& z' V# u, T8 `3 d' ?+ ~

  ~" j  g2 r7 O" N/ L) Y2 Y        return ret;
1 z3 Q0 H4 [- _" S' {! ^}
! t. v3 \4 R, C
; z+ v) j# s% w* ustatic void __exit led_platform_exit(void)" v2 d! P8 Q) z1 Z/ O8 R0 \6 Z! t
{2 V- T7 b  |! }6 ~
        platform_device_unregister(&da850_evm_tl_leds_device);, P6 P0 `1 O; b8 p% ~

4 a" Z) e) p1 y2 Q" x# ~% N" ~" U        printk(KERN_INFO "LED unregister!\n");5 g0 t# j  K$ d* x2 w8 Q- p
}; @, F6 ~' u# ?( q

: L/ d. N  ], P# wmodule_init(led_platform_init);
  @8 k' z  R& f: \- G3 Q0 Kmodule_exit(led_platform_exit);
) }3 E  _' o( v
3 c$ y( x" S7 q! DMODULE_DESCRIPTION("Led platform driver");
  x. p  B4 a5 r7 L! ^, M. xMODULE_AUTHOR("Tronlong");4 f0 E! d- X9 o
MODULE_LICENSE("GPL");" F, n4 `. @% O) ?3 }2 @& ~+ k

6 o0 u4 W( }; N( C$ ~' |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-8 11:46 , Processed in 0.039221 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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