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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 d: A* @1 @" ^) i9 |: ]1 y#include <linux/init.h>% \+ i" H  h4 h) W: C
#include <linux/module.h>1 w- e  j5 K3 S7 {6 G% J
#include <linux/kernel.h>
3 n3 ?' h; Y5 E, ^8 j& I#include <linux/types.h>+ U8 c8 R0 |0 s/ j0 R* W) h, N* p
#include <linux/gpio.h>
! w6 y0 v4 L# |, \: n9 ^& P#include <linux/leds.h>& Q! W- R5 S5 Y( c& ^
#include <linux/platform_device.h>
9 X. ?; K1 m2 T8 \% f5 F0 o; ~' x7 n/ X2 V
#include <asm/mach-types.h>; Q. R8 A& K: E7 W' H8 @% ~
#include <asm/mach/arch.h>
* T  p8 Y! z5 J8 k3 c6 f4 B#include <mach/da8xx.h>
5 ^, G0 G' r& T* I+ r. f. j$ C#include <mach/mux.h>
( k, A$ s2 n3 j! B. S' R7 R9 `0 p9 o: b
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 ^0 p! Y& q3 f' o: t% ^" Y3 s#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 v5 `7 n" k' M
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 V( h& i3 c( D' X#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# G" i8 e" |2 g0 C1 j# N% g3 N
8 r$ n# L. G- Z6 l) U. k" S
/* assign the tl som board LED-GPIOs*/7 X: [4 h# _5 y+ e5 J& W, k$ }
static const short da850_evm_tl_user_led_pins[] = {, B( F7 G: U! b$ v/ u/ ?- D
        /* These pins are definition at <mach/mux.h> file */
/ x4 H  I6 I) T" Y9 ]( O        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 h! I, E  x6 }2 N4 Y
        -1
- I2 w1 U$ y5 T! K- I7 k};2 f5 N  K6 P. h; Q- k5 [! t# T" b

& T# G1 Q3 c8 g% D, Gstatic struct gpio_led da850_evm_tl_leds[] = {
' W6 n9 |. I9 e3 j% t3 e        {) m- f% U6 D4 K) X8 X$ _
                .active_low = 0,
" ^/ Y6 }  J4 H, h                .gpio = DA850_USER_LED0,+ J5 p3 e1 R# ?' Q& W- d3 K1 |
                .name = "user_led0",/ B3 n& ?! e. ]( c3 W/ S5 o! c5 l/ z
                .default_trigger = "default-on",2 V3 B4 H5 L3 u. ]' A. |
        },7 Q3 N8 v& Z2 b1 i' f
        {
; ^# m5 J5 o& w* R                .active_low = 0,& K- ?- e) d- i7 k0 ]
                .gpio = DA850_USER_LED1,, i6 E, f' B. Z. @( O
                .name = "user_led1",9 y4 S# j# i$ r. s" F( n: a
                .default_trigger = "default-on",! K. I: `$ K& n3 ]
        },
0 i  s+ z  f/ S) H1 k$ z1 V        {
9 v4 @7 M# e: k) {& _6 k, r                .active_low = 0,
# W: x+ Y3 [7 a  o                .gpio = DA850_USER_LED2,( U8 M3 f+ G5 D' I  V0 ]( T% O$ U1 a5 R
                .name = "user_led2",; E# g5 c% Q8 b1 @/ ~; C
                .default_trigger = "default-on",
  R" \8 _! Z& {        },
- O1 f/ ?4 I; B. e" y- c        {
$ ~' i  Y; b" E                .active_low = 0,
+ k% N1 V8 {6 R/ j5 a5 W! Y$ ?                .gpio = DA850_USER_LED3,
# q& Z! K, P9 P' y- o1 K                .name = "user_led3",
* c! a. x& O" r+ S                .default_trigger = "default-on",
% }3 c+ {1 ~& x) r% r        },
% N1 m) s2 N; v) L) A};
8 y, ?+ c& V! U- p" o, q/ D
. t) k6 B% A" R( T8 c; vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: S8 g  v# z' ^7 _3 p        .leds = da850_evm_tl_leds,1 X" v6 |4 O5 w2 x5 M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 }6 w- v/ L6 b7 g" U9 A
};+ b9 J, F+ T) e/ b% i: i& ^
" a$ |; K& }9 L7 E: G  G9 f
static void led_dev_release(struct device *dev)
/ b+ ^+ T! H& h' z. R) j/ c{
0 `& a5 L0 d$ h! l};4 `  \* P4 z$ [: w9 H9 D
1 e# h5 k! H  t! \: \# e
static struct platform_device da850_evm_tl_leds_device = {
* z2 C; e) c* L% W        .name                = "leds-gpio",- \& I2 Y6 l3 y. d
        .id                = 1,5 u# @2 S$ }+ L8 P% Z
        .dev = {
) y2 d8 F3 R' q5 y$ d                .platform_data = &da850_evm_tl_leds_pdata,6 C+ x. A, K4 X5 q4 X0 N1 E
                .release = led_dev_release,
$ H- G) d8 i- G" A        }
& a+ f9 s* L. T. T8 ^};
9 t- j) @1 b6 [) e1 q1 Y( {2 p  [$ P  t! C! k$ [
static int __init led_platform_init(void)" R5 d& O- \* M  C7 C/ F) X5 l
{+ W# q. i- b( X; \
        int ret;
/ ^4 C0 x( F  M#if 0
5 q' U; z* R9 t7 j- \6 N3 s+ X. f3 Q0 l        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- H! }9 P; H, [% k% ^9 Z& D        if (ret)' C7 j' k' V* ~. q0 h1 M3 C
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* n! F9 R( X8 @. H% F7 E' l( o1 Q                                "%d\n", ret);; r% L6 o2 r" g4 [  `3 E
#endif
5 Q9 {- B8 {, r        ret = platform_device_register(&da850_evm_tl_leds_device);1 ~6 ]9 X. s1 @% e1 W# t3 d5 w. j
        if (ret)
5 L: @7 E! T% P$ d$ W                pr_warning("Could not register som GPIO expander LEDS");
+ j* ~4 C+ N0 ^8 ?0 r5 E$ W- G        else
1 Y/ Q. \5 {3 ~* s                printk(KERN_INFO "LED register sucessful!\n");3 Y' j8 G1 h5 ]; Y7 V9 G2 m8 _3 J

/ _) o$ h# c! X) k+ U        return ret;8 S3 {: `8 f2 u3 x7 U1 f7 [, n
}
/ ~9 j5 B$ a% a
9 |* x  L/ A7 e2 r& [$ g6 Q- bstatic void __exit led_platform_exit(void)3 ?, t9 _# b& \, ^7 P+ H" G
{
6 Y. q# z. C0 O# V- j* K; U        platform_device_unregister(&da850_evm_tl_leds_device);0 n6 Y/ s/ O% j- ]/ t0 d

5 M  `; i2 E& R8 a6 ~, ~1 R; c( l        printk(KERN_INFO "LED unregister!\n");
' L9 U" y" `( o% s! n}0 t" i+ W, \6 e; F" V

) w. t! u4 _# ^' P  J3 y; Jmodule_init(led_platform_init);+ _3 x: C) \" H3 b* r' N+ c
module_exit(led_platform_exit);
8 W  A' t& @6 `: ~% E" R; n
4 L8 Y; B2 a. w: iMODULE_DESCRIPTION("Led platform driver");/ n7 }- m1 L# Y' D: G
MODULE_AUTHOR("Tronlong");
9 u: c, _# Y0 X  j  @1 NMODULE_LICENSE("GPL");
8 I$ D. {9 H+ z$ N. {
6 M7 _  W! ^; C: d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-11 19:03 , Processed in 0.059691 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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