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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 r" H( |6 W3 e, Z6 o$ a#include <linux/init.h>) \: t* g1 l! I2 j1 G6 K- o
#include <linux/module.h>( Z6 G1 M% ~# c  O
#include <linux/kernel.h>
) }6 n, w% o0 j" M8 K#include <linux/types.h># a5 o% w7 e/ I4 _  W; g. Y4 t
#include <linux/gpio.h>
) m7 P, O  B% S! c+ ]2 q% g#include <linux/leds.h>
; X# N0 G2 C3 |& ^#include <linux/platform_device.h>( I2 V5 h. G( x! c) k

% [' x7 @& p# M#include <asm/mach-types.h>
/ ?+ |' O; I3 z. {% a#include <asm/mach/arch.h>
* A9 @$ R2 A% \" g1 }! Q* j#include <mach/da8xx.h>9 n) I) I6 F+ C' D' {0 V+ P1 |) W3 ~
#include <mach/mux.h>! J# A8 x2 m! N  z, g* l
* T* @/ G- }5 X3 M* `
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# n! X8 d+ T* i8 _& G9 J
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: ^) ~$ G2 h8 o" l- g4 E#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- [# N* h& r9 |3 R% u7 ?+ m
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ P- H, ]# \. u' \

3 a" c, y) t$ q/ `9 J6 f: K/* assign the tl som board LED-GPIOs*/2 U3 _# Z$ q, O6 K3 w+ s; F, H, C
static const short da850_evm_tl_user_led_pins[] = {, d3 ?0 H' z, ^9 X
        /* These pins are definition at <mach/mux.h> file */$ }% b+ u$ }* C6 I
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* y" U6 I+ W; u$ P' x        -1+ f9 _+ |- f0 C. S3 F0 y
};4 B+ A3 a+ r% ~- H9 l, o
! N$ h' _5 B! ^3 _6 ?5 o
static struct gpio_led da850_evm_tl_leds[] = {3 A( x) N  F6 X( I
        {
8 d7 i6 G' j) y) b4 F# Y. v7 k                .active_low = 0,
, T5 c' r6 H* J( {0 F2 ~) w" |                .gpio = DA850_USER_LED0,, Z1 c. _7 F6 w% r0 E% k- }
                .name = "user_led0",
0 q. y9 C* g. z0 T" E& D+ C* O                .default_trigger = "default-on",
2 ?5 Z/ T7 |  G1 t. P' H( W3 E        },
% x9 m! y  j  M6 Z. _& |$ u+ V1 T# ]% g: B        {
8 i3 h8 c- F! W: s7 b" r0 A                .active_low = 0,
( `6 X" U' `9 n/ U                .gpio = DA850_USER_LED1,, ]3 z7 ]3 S+ ^. K
                .name = "user_led1",
7 ?: T, B! _0 J/ b: H                .default_trigger = "default-on",6 y  \) l' S, o7 x& @/ ^
        },; O. m3 x9 e* m5 x- s
        {
+ l. g) D2 u6 |! l5 \( t. e                .active_low = 0,
# a5 O0 |( X6 o# N2 y                .gpio = DA850_USER_LED2,
1 W1 Y# U7 ~* \: D0 m9 [; k% B( B                .name = "user_led2",, ~3 L' n$ f; g) K0 k' _
                .default_trigger = "default-on"," f9 |/ n3 _. A9 [
        },
4 N  n0 a2 \2 c7 A0 o        {0 E/ C5 W  ?9 V' s2 H4 t" r1 ~' O
                .active_low = 0,0 H0 ]2 w7 [7 H
                .gpio = DA850_USER_LED3,
4 ^" w& C# p$ R/ j                .name = "user_led3",% H; H3 `" [2 @# Q$ V
                .default_trigger = "default-on",
. t6 U3 r; Z! O" D/ D" z% S# ?        },
& A3 B" h) Z& H8 ]};
2 Z& p! n0 e; o# t6 a; s, I. t, ]5 j: R; d( c9 ~1 W
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: N- p! a* @9 A4 O) I* k
        .leds = da850_evm_tl_leds,7 ~7 A8 e3 P! Q" Y, X& O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 [* N9 g2 A6 `: I8 W
};
" W8 P1 U$ B# }3 K' X- D
& x- E, e4 ]9 B1 R( I) H/ V9 g$ Ystatic void led_dev_release(struct device *dev)$ L' S* F7 L, }8 L  ~( q+ e$ |
{
1 B% z+ q8 M& T2 E6 Y# d. T# d};4 R* ]6 N& l0 M+ a$ d. a
" \" S1 l) H' o% k
static struct platform_device da850_evm_tl_leds_device = {
- P, i, Z& q7 b$ n4 m        .name                = "leds-gpio",5 I& _  X0 h' P
        .id                = 1,
% ?+ e0 c1 T4 r3 _) C4 V        .dev = {
/ Q2 N& D0 S/ c3 N                .platform_data = &da850_evm_tl_leds_pdata,! \; d$ I3 e: G# }. M
                .release = led_dev_release,
) r/ G# q. _- m  I4 t1 Y        }2 ^  V3 N! F5 P% U$ o
};
& x, ]# b; q- A+ n2 j6 ]7 Q) |$ c. }( T( ~9 \+ K! r
static int __init led_platform_init(void)% R" Y- i5 _. Q  p7 w0 t& ]4 M- y
{6 t% L( S6 N" d0 a# o6 j2 P
        int ret;, e, M' F6 {8 J! j* ~
#if 0" W+ c" S: n: p2 C0 i8 ?
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( _5 v  L# y$ q& {# _        if (ret)
7 j3 O( y$ F6 F. C  A. S                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  K- \7 m8 b: \8 z3 [3 p7 L
                                "%d\n", ret);8 `3 ~% H" n5 d3 W' A+ E
#endif7 n# r: S  R+ L  [. l8 O
        ret = platform_device_register(&da850_evm_tl_leds_device);
+ P6 d* L3 S% H& F6 a' ]- V3 w        if (ret)
, ]) ?, w; j4 E                pr_warning("Could not register som GPIO expander LEDS");
, E: X. ^/ w4 ?/ ]* X  ?        else
3 p  g8 d! l7 k, [                printk(KERN_INFO "LED register sucessful!\n");
/ i. Q/ @* H: U, Y8 b$ i( e* C! @4 I' N2 t: a0 N& \
        return ret;
3 r% u" O! Z/ ^+ I! ^: f}8 K7 N) R8 I) i; j; y$ {/ u4 C
  y; f5 p" s! o7 Q5 {( `
static void __exit led_platform_exit(void)( I1 k1 J8 S6 e7 {* O
{
' q7 T" r( O$ T( k        platform_device_unregister(&da850_evm_tl_leds_device);
# l" T; b" h) S5 e+ Y! n. D5 J/ l! |3 V- F8 B$ a8 G  O2 m
        printk(KERN_INFO "LED unregister!\n");
/ T  b2 ^! }6 a}
- L$ B0 ~3 _4 L( B
, _. a$ M, E- q+ h6 e/ r5 `module_init(led_platform_init);
4 \; u/ g- m+ A, qmodule_exit(led_platform_exit);
0 N) a7 h$ h6 L5 g) m1 D/ Z8 ^+ i8 P; G, Z% i7 f
MODULE_DESCRIPTION("Led platform driver");
) i7 K! _7 a# g3 r2 p, s8 FMODULE_AUTHOR("Tronlong");
. s1 l: k( Z4 I8 h0 hMODULE_LICENSE("GPL");. b1 _2 a; U! A+ _$ Y2 C0 i0 |

$ D  x2 ]1 `1 F( w: k! e. C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-27 17:50 , Processed in 0.040003 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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