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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 J+ _6 ~" Q0 E8 w#include <linux/init.h>; p6 n( l' k  G) |
#include <linux/module.h>5 V; R% w, L1 q) Z6 w! B$ f' Y3 O( b2 ~
#include <linux/kernel.h>- S, p- c5 z# g
#include <linux/types.h>
9 C" I4 C3 w3 B% @#include <linux/gpio.h>
# [! f: n- e( i6 a#include <linux/leds.h>1 L% g( G% n' D& w1 ~( G+ ]
#include <linux/platform_device.h>7 O4 f) B6 _0 \5 P, m
" o% x/ `5 A( N8 I# ]* J& T( h
#include <asm/mach-types.h># d* Z: j5 s  }. h7 I
#include <asm/mach/arch.h>& a% z8 _' n5 z! e. p
#include <mach/da8xx.h>& J! q7 F0 m5 m5 r3 z- k' H8 B
#include <mach/mux.h>- L. w* F5 t+ [- a: [9 B

- i" w  A! e; Q5 y5 A#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; j- ~/ u5 w) B/ o& k1 ]: S. d#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- P  w* s3 C6 E9 ]
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), Q" B8 K0 ^7 A0 G" s1 Z" `% T
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 W5 Z: V" V/ o6 ]% D
" K/ c3 |; c. {# ^/* assign the tl som board LED-GPIOs*/: E+ _) g' [8 H8 _% n' W) V
static const short da850_evm_tl_user_led_pins[] = {8 \6 I: M' d+ j& m" V9 [8 \. z
        /* These pins are definition at <mach/mux.h> file */' ]) g+ k* B: P) h4 p) B
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 ]/ C7 q" u6 X7 Y        -1
* y5 c$ l5 r8 t4 g  \  Q};( E1 E* u3 }7 _& k4 `
" J: V# U3 [! s: j' f/ e
static struct gpio_led da850_evm_tl_leds[] = {
, b1 b1 M6 |% |  n* i        {# M) {, s  }4 M3 Y  `
                .active_low = 0,
; z5 M" H% S8 F" @                .gpio = DA850_USER_LED0,7 |1 X6 A$ K6 m7 U8 N% L
                .name = "user_led0",
" K, u; X5 y- ~6 `                .default_trigger = "default-on",9 M/ u) ^0 c. B! l. ]( w/ S
        },: ^) F! k  K& `2 d* {5 V4 m
        {
% X! o  Z! |$ Q5 q5 g, E                .active_low = 0,
# W# j+ E% }- V5 x( v                .gpio = DA850_USER_LED1,; V" o: p6 i! Z
                .name = "user_led1",
+ \, N* b4 y& v' K) z8 P                .default_trigger = "default-on",, ^- f* @) Z, q  g- @4 X
        },3 u5 h' P' I6 q& {' t) Z
        {& f6 {1 G6 Y) V0 t& Y. x
                .active_low = 0,
  H! M0 p) i1 }3 i/ l                .gpio = DA850_USER_LED2,4 ?2 C2 A6 [$ j
                .name = "user_led2",: }2 q) M% b3 Z( A) T
                .default_trigger = "default-on",
( N1 ?5 H! P7 B5 g  t1 q        },8 h( n& s. i+ h3 g0 T
        {
5 p2 c3 H' h/ |4 {1 q, T                .active_low = 0,
& Z4 Q! k4 y, m* o                .gpio = DA850_USER_LED3,
' {- `5 j" S1 l' R5 R/ o# Z6 ~: q                .name = "user_led3",
& r' v& i6 t  c; t3 w$ s/ v" C                .default_trigger = "default-on",
" V5 K3 a2 y& y7 y7 o        },, V4 L" |! j1 p
};- X8 `0 u1 F$ k  g+ z% v* Q% J! F
) X& i0 x: ]) Y% `. H
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 \- ~" I$ ^4 c9 r! R4 w        .leds = da850_evm_tl_leds,
- r/ A6 O" V5 F6 r        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* p' t, z3 r% P* i( N) F};- u! i4 l& e9 w* \) n5 s
& @% V# e0 m6 O1 N( D: D1 Q
static void led_dev_release(struct device *dev)" ]5 y, i- y% v
{
% n8 l0 ^1 y9 V% h2 B8 y& z( m};
, W. J$ F, M0 M3 w6 n. j/ c& ^, q- g  z/ g9 t! o
static struct platform_device da850_evm_tl_leds_device = {
0 p2 c0 n3 m7 V9 N/ p        .name                = "leds-gpio",# U& k: W/ F* K9 Y* I: G! e
        .id                = 1,
0 x- k6 G9 t7 Z) I# i' L        .dev = {
+ M9 z+ s/ ~& Z# T( G* ^- H% F                .platform_data = &da850_evm_tl_leds_pdata,
' V# d/ V/ V4 q8 m                .release = led_dev_release,5 w# ]! p# S5 t
        }
( u/ X9 Q& L. {. z};
5 i2 `* X6 h- L, g4 p$ X  U1 _) ]/ X' f! _- t2 `
static int __init led_platform_init(void)- q8 \; Z2 i- u; X; A/ b. S/ `
{& o7 @6 B$ q- ?) n) z
        int ret;) E* y- o: \1 O# j+ J
#if 0- q& O' u: I4 c; i$ }- i* `9 X
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' f3 D3 A/ G* Z4 w+ ]& N8 E        if (ret)
; M# }2 W6 |: r- r9 j                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( q/ P+ F1 G4 E8 f) @) ]8 r7 g
                                "%d\n", ret);+ e; g( X; @6 W& H9 M1 H( D! K5 a8 |% _
#endif5 u* Y+ x! Q% ?1 C% i
        ret = platform_device_register(&da850_evm_tl_leds_device);
! B* E5 A$ T! M, o! z; ?        if (ret)
$ |5 K1 F' t: P2 `8 p8 }. G                pr_warning("Could not register som GPIO expander LEDS");
& p0 o+ O( e; t8 t" `8 Z        else
* ^3 x+ b$ j' Z' R9 p* y                printk(KERN_INFO "LED register sucessful!\n");" T$ w3 j; J4 O  }& ]  N( G. E0 d
+ Y/ r* _$ |9 D
        return ret;
2 ?9 s( _% B/ E; f' q4 U}
0 k0 u* G' T5 X) h# x# O8 z* Q, ^0 t
static void __exit led_platform_exit(void)
  I1 W+ ]# H# b: w  o{
% q, ^9 R3 {) u        platform_device_unregister(&da850_evm_tl_leds_device);+ h% T) r: E5 B  r0 P  f% k; Z
3 D5 ~6 R5 k% e. ]. Z' t
        printk(KERN_INFO "LED unregister!\n");
& M  L1 B. y+ A' G0 e$ u}
1 S1 a! h# Y. Q$ K6 }( C
; }2 [$ _5 N6 a. a, @8 v% {module_init(led_platform_init);
- I  g  _1 B9 U9 smodule_exit(led_platform_exit);, v) V  {& a- @$ e  g% A

* h7 \  [. F1 C1 e/ _; b* C" wMODULE_DESCRIPTION("Led platform driver");* V, Y. Y" m% w, @. E' v
MODULE_AUTHOR("Tronlong");* t6 r+ n# X5 u1 O& f3 r
MODULE_LICENSE("GPL");
$ e. O, N" G" r, x
) R+ Q5 n2 X+ T+ T  y, t: Q+ u5 q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-28 21:50 , Processed in 0.040349 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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