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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 v  C* |; G7 h+ \* [
#include <linux/init.h>- d7 v! A/ y4 y" S" L! @9 k
#include <linux/module.h>- i( Z/ `) s9 h2 u. e
#include <linux/kernel.h>
3 G8 b" X6 Q, [#include <linux/types.h>0 m, [2 a; \# o, ~
#include <linux/gpio.h>
& _9 m% U# |3 _1 d4 `' c' f9 k#include <linux/leds.h>
  m+ V" m! Y9 a$ Z- Y' J#include <linux/platform_device.h>
4 b0 y/ y6 z# g9 l0 @5 `$ Y7 W+ K* U( F5 w# S
#include <asm/mach-types.h>
$ l: {+ g- n( i4 U) V: l, t#include <asm/mach/arch.h>
% h# C% w; s$ _7 I( ~#include <mach/da8xx.h>
) V# V: Y8 G3 G+ m8 u; ], a! x4 Z#include <mach/mux.h>
2 q. J6 M9 |& \+ A+ G$ j+ q- n; n# l/ ^
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 H$ Z4 w$ R; `" `8 O
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ A7 Z5 d- r; d1 f/ o% s#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% j' v* g: H! m( q7 H
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) ~8 U% ]4 {1 h* `9 w  }, W( q

/ a% ~/ q) t1 B& H* k% _5 ]9 p: J$ ~! z/* assign the tl som board LED-GPIOs*/- q8 p5 l, w0 K4 M9 N
static const short da850_evm_tl_user_led_pins[] = {
3 j) r. m9 k! @7 O1 a& z        /* These pins are definition at <mach/mux.h> file */6 a2 J6 J) O$ A, L
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" B  ^! ^& u0 L% q& A* ~: R        -11 U9 ~# C% H$ d/ m) f2 S
};$ P% q" a9 X% J( d3 t
8 ~7 k+ @6 w4 c9 Z& b2 S
static struct gpio_led da850_evm_tl_leds[] = {2 N3 d$ W+ t1 p! ~
        {0 ^$ E; E* `* k: s0 X# a$ w
                .active_low = 0,
( C' J/ t8 U; b! {                .gpio = DA850_USER_LED0,
0 H  j$ v# ?; f; n, I/ \# K                .name = "user_led0",
! y$ A9 h9 `7 y0 R                .default_trigger = "default-on",, A. C9 i$ d) `; \3 B
        },$ A' Z: A6 u5 Y5 G' c
        {& S" B! y! k0 f
                .active_low = 0,9 J! f2 L9 G$ t7 U
                .gpio = DA850_USER_LED1,: Z. \0 U) O% B: V: c& [& Q
                .name = "user_led1",
5 Z- u9 R7 X; m* u9 T                .default_trigger = "default-on",4 `. Z! f* ~: `# o) R
        },
) k% ]. R0 X9 Q        {$ {2 H; H* N1 S! D) b
                .active_low = 0,
1 t% N% D; p) h; O                .gpio = DA850_USER_LED2,3 ?# X  P7 _# L" d) ~- [
                .name = "user_led2",
, r( F  p' l* c6 l$ P! y5 p% f3 k* v& s                .default_trigger = "default-on",
% B/ N5 r. _1 P+ }+ h        },& A" J& `) K8 c) z) X+ z6 B
        {; B3 v: S+ ^- d; c
                .active_low = 0,% `( H+ E/ Q0 m
                .gpio = DA850_USER_LED3,
* N* i; I; W; F+ ?1 @                .name = "user_led3",
- n; k. |; q& U; B; w8 b                .default_trigger = "default-on",
2 j; w/ k7 a1 ~5 S0 g! w- ?; c        },& r9 y  _  `2 O2 f; j
};! h" r8 h; q1 B# o, k* v

( E0 ?% U4 }) v6 W5 l& b% ]8 ^static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; z; p, M& I  J$ v9 A4 |8 _: s: a1 X        .leds = da850_evm_tl_leds,
, z7 a9 m* `( `! A        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  N* D! R. G" f0 L1 p! b+ h};! k; i5 M* i9 D7 F0 @' e$ }- h

" v( o+ F8 H2 V' q9 H. i2 _static void led_dev_release(struct device *dev)
7 ^* _$ u4 R0 V: L# q{
/ {) D" X0 T# U7 P, \};
2 p' t. K& ~$ v# p( d7 _; z* ~( |% w  `3 C7 Q7 c  x
static struct platform_device da850_evm_tl_leds_device = {
% n5 i& \  W7 X        .name                = "leds-gpio",
: A( x) s  v: p5 i+ ?6 ~5 [. z        .id                = 1,- W1 b. e. f6 S
        .dev = {
" A" A8 m1 L6 ^* G8 ^: }                .platform_data = &da850_evm_tl_leds_pdata,. R6 ?2 [; h4 x. B, a$ R3 |, j( v
                .release = led_dev_release,4 [- D+ r8 g( O3 L+ f0 C6 T5 U& g. }
        }
; H" r$ C- H9 f/ W( u+ R4 r};% I: k+ s( F  C& Y$ U% h

  I# C$ G8 O' ~1 b# M# s* ]static int __init led_platform_init(void)& C4 k6 d; q, w7 `$ a. g
{; L: H, k: k9 Z9 @& C
        int ret;
* _6 O$ j  g; C% p! j/ Q#if 0# v8 a* f; p  M5 [) C% z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ M  U: C9 J2 U7 n: A5 U9 j  ~
        if (ret)
3 M& U( S! g5 f& R3 a                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) C# A! X% ]! S4 A; o: {1 j                                "%d\n", ret);  z5 o; r' u0 S3 V# y' W% b( v
#endif
7 {1 |3 Z6 G# Z% @6 a8 ^1 Q! z        ret = platform_device_register(&da850_evm_tl_leds_device);
: N( H" p& v; t, g8 k1 e4 E        if (ret)
8 O+ H# |3 s7 M* A( l! j3 f                pr_warning("Could not register som GPIO expander LEDS");
$ c# J2 _& L5 u1 \        else
* i3 ]( ~' R4 ?+ e                printk(KERN_INFO "LED register sucessful!\n");# j7 h  d7 Y' Y! F1 c9 I" Q2 k

- f, Q4 C' u6 q$ q0 [, ?        return ret;
' h- h" T6 I0 z. M( g: J1 C: G2 w}
& {5 [- \# d, H7 t# d* ?$ C) k1 ?/ M
static void __exit led_platform_exit(void)0 }8 s, @/ y, L. x1 v0 O- r
{) B5 _$ B% b/ u& o
        platform_device_unregister(&da850_evm_tl_leds_device);
( X$ g3 w2 T1 H) ~2 I0 G' o$ w% W0 T9 r6 P3 G9 N2 X/ [4 }& a
        printk(KERN_INFO "LED unregister!\n");
5 M0 m. B5 N6 B6 Y6 E' _}% N- O, `6 c. c( s
! L4 t) J+ t1 f( r& l1 s
module_init(led_platform_init);) @. [6 w. q. C! S
module_exit(led_platform_exit);
6 D8 Q6 Z# C9 Y5 _! D) _$ `0 z% D6 m& {3 v
MODULE_DESCRIPTION("Led platform driver");
$ A" D3 R( q1 r/ t' J7 p: SMODULE_AUTHOR("Tronlong");
0 ?# i, o6 ^% }7 HMODULE_LICENSE("GPL");# W8 S! ], u5 e9 A
! j( U) [# g/ A' D2 R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-28 23:03 , Processed in 0.040632 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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