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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# c1 y* v9 X: G) w$ x# p
#include <linux/init.h>* t1 X# z2 k  @! b
#include <linux/module.h>
* M; T* E1 W( l7 B; s#include <linux/kernel.h>7 i8 A2 o1 F: Y
#include <linux/types.h>
' M+ a- O  r$ g% ]( \# ]0 |#include <linux/gpio.h>
  ?6 {& v8 a9 U2 H6 I' ~3 t+ H* r#include <linux/leds.h>- d$ {# M4 q8 Z* O
#include <linux/platform_device.h>. t9 _& a1 ]1 v9 Q# X- A1 ?

7 Y0 {8 \8 c3 B8 R6 b, T#include <asm/mach-types.h>
) {7 J: ]4 D- O; O1 i% p" O! W2 V* Z#include <asm/mach/arch.h>( m& l* n9 c2 k" M6 j, g% f
#include <mach/da8xx.h>
6 M/ c. Q/ C$ M! V* S#include <mach/mux.h>4 g5 s/ i# {( y) W9 Y
6 |, d* R) i, b2 L
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) @# D5 g2 m+ G! M, |: j* v#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! [- i1 \$ t  k, p. |- q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" t2 W8 F; i# k; c/ f1 U
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( M/ C* q: |3 ^* z& F$ B! _& i% S3 O0 ?8 \. x8 {
/* assign the tl som board LED-GPIOs*/9 c7 ~- z8 [$ Z) u
static const short da850_evm_tl_user_led_pins[] = {
5 i3 y! X/ i4 {& \        /* These pins are definition at <mach/mux.h> file */$ _  D; E2 R- e( K3 d2 P1 `- x: z1 Q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; c4 k  f5 {0 L4 c6 e5 f
        -1
# w9 V9 J3 L( L0 T1 i};
( ?) \$ k2 o, k; v' F" h3 q; a* l" h
+ ^( |6 t6 h& J5 ?( V0 J8 pstatic struct gpio_led da850_evm_tl_leds[] = {
$ o6 R" h% {. o  u# @" e+ C        {
# B; }4 L0 i9 L* i                .active_low = 0,! O6 e- {* T* {; T# U8 g: ^4 U
                .gpio = DA850_USER_LED0,
, o+ N) `% C2 U/ a: a                .name = "user_led0",. Q9 C: q: h3 g6 y* ?
                .default_trigger = "default-on",  U7 i% d( ~) H( K* ~
        }," l- f. {2 E( ?) N4 B" J# h& `8 u
        {
4 K& n% l( u6 ^$ R$ Z                .active_low = 0,
% \$ V% q9 \( e+ q, k; a; P6 O  w2 L                .gpio = DA850_USER_LED1,. M+ C9 J) X, c! P
                .name = "user_led1",
, `/ j% |* U/ @! L                .default_trigger = "default-on",
" W& z5 H% l1 r& }: ]        },0 ^2 q) M+ a' e- |
        {0 R/ v, a2 `$ A' i; T
                .active_low = 0,
* d% |4 \! u9 E0 t+ w0 c. G# g) r                .gpio = DA850_USER_LED2,+ V0 f, ~8 j- K  L8 m5 S
                .name = "user_led2",
2 e% O& c; t8 f% n* b                .default_trigger = "default-on",
' v* ^* n- ~9 F) b, w3 k2 \& M7 d        },# {6 Q( Q& w- X
        {8 t+ S- |) X8 }7 D/ E
                .active_low = 0,) t7 ~' B$ E! G
                .gpio = DA850_USER_LED3,/ D4 o+ }% P" o+ V( I
                .name = "user_led3",
, ?/ b# {" L! Q1 W2 o                .default_trigger = "default-on",
% e- G5 Y( U4 d        },
: t' t' T& R. r! D( Z};' a3 ~& U% f9 ~! @& Z! _0 A% D# v

, T) g9 K: P& }5 d5 A  u& nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 O5 e  G0 S/ ^; `
        .leds = da850_evm_tl_leds,
  V/ R. D/ T: V% ]3 `: y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 _9 k. L/ z6 M8 I; T7 Z" N
};
) T% @2 |7 Z$ \+ ~' [" V4 n0 }) D* T; D/ t- ^* h1 @! Z; f- `2 V
static void led_dev_release(struct device *dev)9 E8 Y+ D* z. w& ^, z
{2 i$ ~" `9 k1 v; W5 L8 w
};. }& P- e+ N! X$ K) I2 E

0 @$ G8 |& |+ y; t4 `) Y. Dstatic struct platform_device da850_evm_tl_leds_device = {
' J, F& F3 e+ p) Q" N        .name                = "leds-gpio",
. w" j5 @2 y, T  T$ n' Z; C        .id                = 1,: O: P  T6 X, R+ ~' Q
        .dev = {/ l/ f$ n: d4 v7 g# b" h
                .platform_data = &da850_evm_tl_leds_pdata,* x: u: l$ X1 j+ H, Y; l6 U' c
                .release = led_dev_release,( x- J* z6 T% V5 O
        }9 y! ~: P- Z) ~4 h5 Z$ T
};8 }" u, m4 P( p) r

% j2 N0 ?& k0 Jstatic int __init led_platform_init(void)3 g; O% B/ l/ J4 m% E
{' G5 y+ a% ]6 ]+ L' F
        int ret;# v- U! x( d" y* T
#if 0
+ P& o6 S+ _3 l0 T% o, G6 b        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. V' V, m1 r$ g        if (ret)
" p& u; S5 B3 @, {4 R                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 t7 P% H  x  e1 }! P# q
                                "%d\n", ret);0 I6 l+ @, c% N9 C
#endif8 u4 N4 b' R8 Y. v4 r' V5 o
        ret = platform_device_register(&da850_evm_tl_leds_device);  G: P: X6 {" O. ^) A, F
        if (ret)7 c9 R* Q7 [5 h
                pr_warning("Could not register som GPIO expander LEDS");
3 Q- \( c1 H: Y8 x. F/ Y/ ]1 q4 A        else3 d+ u% |% n# X, x  B0 _. v
                printk(KERN_INFO "LED register sucessful!\n");
: h# \4 o5 L/ R' n# V
1 N( u) o9 p- Y/ \8 R" A/ e6 J        return ret;
2 r7 w, w6 J2 k3 S}
  e- x; G9 d$ J, K
( Z* f9 f" i* nstatic void __exit led_platform_exit(void)
! n# P0 K2 ?9 g1 f8 _5 i" T{
4 @! r; _( R6 W  l5 ~& H8 w4 h        platform_device_unregister(&da850_evm_tl_leds_device);
9 c+ F/ u* R: J  ], }- K9 u5 u. i" K$ }" z$ S
        printk(KERN_INFO "LED unregister!\n");
  z! ~( u. y/ w6 t0 V}; Y/ T6 Z- \) L: X

3 B# L! q* u/ z. q8 @! D/ T1 cmodule_init(led_platform_init);3 {2 j. Q/ T$ w7 D: n
module_exit(led_platform_exit);
6 r$ |- l8 O, H' t, d5 r4 e6 |- v+ w" h/ T6 h* u% L9 D
MODULE_DESCRIPTION("Led platform driver");
& T# h, q; y/ uMODULE_AUTHOR("Tronlong");
. x& `3 C/ J5 [7 a5 X1 U* h$ yMODULE_LICENSE("GPL");( `5 a/ a( p" L6 N

1 h6 `  R4 X/ y0 z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-13 02:18 , Processed in 0.042601 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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