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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ B" h" R  |2 `( E6 U+ J
#include <linux/init.h>
) o0 H% ?, F1 Y$ \: m& M# F#include <linux/module.h>2 T$ H( u3 E0 `! m3 |
#include <linux/kernel.h>. |& x  A) d' a) ?, N
#include <linux/types.h>
) I6 E% O5 T6 P- C3 X5 }1 m#include <linux/gpio.h>) M& C, A8 N' u! q+ B
#include <linux/leds.h>
- r+ R8 e* K, R% ?#include <linux/platform_device.h>7 V" d5 k1 s9 J& W% h: l5 O0 t% p
# S1 i* P/ i% t8 ]
#include <asm/mach-types.h>
- L, I! \( u% l  j& B" g#include <asm/mach/arch.h>
, G8 |- u& w0 h6 ?#include <mach/da8xx.h>
1 l  p' Q3 S! L  X8 |. o# J#include <mach/mux.h>: ], K- T0 U, P7 f9 \/ N

' T/ ~& D) C- s2 q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% Y0 i* g' [7 \% m
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 v. M% P( S- @  H6 e! k' G#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  }0 c$ x* [3 B5 A' H#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 ?0 _7 m2 u% H, J! r# [& v: ?1 y

# D0 X- ~. y, P9 e/* assign the tl som board LED-GPIOs*/
9 m0 |% d% l- O% ]6 v# `$ ~* mstatic const short da850_evm_tl_user_led_pins[] = {& a: l3 t# a' g" b0 o
        /* These pins are definition at <mach/mux.h> file */0 S1 T- U0 T2 @1 P4 z7 ?
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,# N1 }! U2 o, I2 V
        -1% S1 z5 H2 n7 n- z0 t: W$ V0 \2 Q
};
8 D+ l7 C9 T, m  y; i" _5 r8 H9 w, S) S' F
static struct gpio_led da850_evm_tl_leds[] = {; R, q- X) l. i6 {
        {
1 m# d1 h' A; }( k0 r. g) b; B" @                .active_low = 0,, r+ V* ^8 \  W4 H: q0 ~
                .gpio = DA850_USER_LED0,$ ^( b1 M9 t3 j/ {- x5 v
                .name = "user_led0",* u0 ?/ X& X- Z3 Q3 G: d8 P; L: `2 |
                .default_trigger = "default-on",
# S, F$ F+ ]9 s8 e) B! M        },
3 C" t& [* O6 F# d; l1 R        {  I  S+ B" k! A4 w' V
                .active_low = 0,
  |7 J- ~- [" F# j; r  T) ~                .gpio = DA850_USER_LED1,
4 J; G6 d# i& |5 f. H1 h* B                .name = "user_led1",& w  e, i7 T% `% |# b2 H
                .default_trigger = "default-on",
  e, {+ d: U* \" K        },5 |  q# a5 K9 d7 v; y$ B" ]
        {
6 E' R1 a$ Q% n/ F2 D+ {1 J                .active_low = 0,# i) [2 E  `, a$ E
                .gpio = DA850_USER_LED2,
! I5 \# t* v' I0 J                .name = "user_led2",
: c" a* s0 D2 X1 O! [" v9 [                .default_trigger = "default-on",5 c4 T3 _4 ?  a6 r5 t8 V
        },
" t- \" d) o5 M3 p0 |  f% y6 ]        {
% v3 s" X' C5 @                .active_low = 0,
6 i0 H, V) O- r( C/ V: J                .gpio = DA850_USER_LED3,
1 d: ~# `4 @# j% D5 J7 Z- a  g% z                .name = "user_led3",+ T+ m* x- F" }: q& F; {7 k# a
                .default_trigger = "default-on",
; P, |$ m: e) V, p. h- {) k9 z* q0 X        },2 r; y' Q% V, B. q& F
};3 ?6 c6 U8 Y  ~) l7 C% x# G1 N
2 q* e0 M& m5 W7 F. f1 n
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 V1 Z9 o( p+ B; D9 a5 i        .leds = da850_evm_tl_leds,4 `* m  B5 [/ |. I8 C
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 S+ a& M, u( p% R8 r0 d5 F
};
9 H, o% m/ Y% v2 N* U: U
* w( a. s7 C5 ?6 _  G# hstatic void led_dev_release(struct device *dev)+ \7 Y! H4 Y; o# x/ E
{
* c" o6 [3 b7 _! b6 L};' e7 e- F" {6 M5 W, Y

7 K6 R- I* r+ _  M* t1 mstatic struct platform_device da850_evm_tl_leds_device = {; R4 z" o& C& g9 c
        .name                = "leds-gpio",
3 K" [6 a( F  h4 w" ?        .id                = 1,5 Y( [( |4 L  B- I
        .dev = {
8 I- B6 @9 R( q, Z+ Z$ b3 n                .platform_data = &da850_evm_tl_leds_pdata,  k0 S% o* |' K1 J+ I2 l" |
                .release = led_dev_release,  g8 a, v# L% B3 _) n5 r
        }
" S) \  r3 X/ q% r! I( S};2 e0 n- G0 f* |% h- c
4 X' J9 B& J. _+ z$ H
static int __init led_platform_init(void)$ l$ G+ o1 a2 C, v* P
{# D' t# J: J  T+ O
        int ret;7 g- e, C. L2 x! f& i0 z
#if 0$ F- _( K9 u$ F8 S1 \
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- t- A% O5 ^& g4 t( S, v, ?6 A        if (ret): [$ V6 \$ N) @3 B8 Y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 Z4 w1 F' b8 U: X; \: v( \                                "%d\n", ret);
, o5 b7 g' Q0 Y% i#endif
% |# Y' t8 u6 c# m        ret = platform_device_register(&da850_evm_tl_leds_device);
$ I& M- Q2 \# |3 v1 K        if (ret)
! k3 k6 ?6 s- o8 x& I  \' \                pr_warning("Could not register som GPIO expander LEDS");' V8 L% v9 o% V7 P
        else9 R4 p- `# l' i$ d& l4 d
                printk(KERN_INFO "LED register sucessful!\n");: u9 U4 n+ V  c( F1 ~" q
$ R5 T& J- n6 H0 ?8 r$ S
        return ret;1 h& W6 c3 W; a
}
, }$ }+ g5 S5 s+ b
4 e  Z: Q. S1 R$ D) B6 `, a& pstatic void __exit led_platform_exit(void)
$ b. m" ^* ]% z) m& n{
4 L9 C$ M7 n; N& ^, s( r. g8 f        platform_device_unregister(&da850_evm_tl_leds_device);! v9 j# u0 k3 b
% F; S+ e1 {9 N8 [" k- T  l
        printk(KERN_INFO "LED unregister!\n");
; l3 m- }6 z$ g0 f}% L3 U9 [! F8 O# G' J/ X0 p9 ^
% `+ ]$ d; e. ^; |5 N* O" F& ~
module_init(led_platform_init);  \2 W% o: }, |% R& k2 o1 G
module_exit(led_platform_exit);; G; P) Z+ ?/ D
5 A" b* i* S' _) d( h
MODULE_DESCRIPTION("Led platform driver");* d! u, x: B/ C6 J% c( o
MODULE_AUTHOR("Tronlong");
% n" a2 h% H  d+ N/ LMODULE_LICENSE("GPL");
8 z* U4 s$ L* ~+ D
: ]# I$ Z/ ^5 s: X% @1 \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-7 12:48 , Processed in 0.040688 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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