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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 v8 M6 n) g0 @' g7 [& P5 V( l) ^#include <linux/init.h>! I5 a: O- ^" F& i6 }+ t
#include <linux/module.h>  o; w; ^! e; W
#include <linux/kernel.h>) k; h( s  N8 O1 @6 U* G! K" z
#include <linux/types.h>! D; v0 W/ r% p& x2 {$ I/ r: S
#include <linux/gpio.h>0 ]1 f/ G# l- |  v, u8 ~
#include <linux/leds.h>& M3 U- D6 I, a1 d! e5 K
#include <linux/platform_device.h>
1 b& c$ H2 D8 ~% [% y7 N8 w* ]" _+ a8 I! V
#include <asm/mach-types.h>
2 y* w3 s+ @, X2 c  f( `#include <asm/mach/arch.h>
$ j5 C3 k  L* ^' T& t8 k#include <mach/da8xx.h>
0 n2 U2 L9 ^  Y0 a4 }2 `. h( G#include <mach/mux.h>$ R$ [: |/ H# i; x

, z; `" o6 L& F' i# Y/ H0 G: V#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" F# J$ d/ {# Q/ u9 x3 R#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  G1 d( q  B, s; ?
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( J. v& m2 w) k; W
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ D" w0 w; l# Z. |4 W
+ c% L0 I- m6 c# L! C' q/* assign the tl som board LED-GPIOs*/& F; X) {9 @4 B# _# D
static const short da850_evm_tl_user_led_pins[] = {' B" a; U9 O$ H
        /* These pins are definition at <mach/mux.h> file */- \! O( h4 n" X9 L0 c+ R
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ ]) g' p3 s2 H- ~        -1
& Z, s+ F8 G8 C};
( P+ l" P( H' m+ ^8 n3 z' N( C* X* T; T0 J- f) \: L
static struct gpio_led da850_evm_tl_leds[] = {
, ~9 V6 u% k7 v( [        {
' z& E. C. f7 t; [$ p$ d                .active_low = 0,
# \% k- m$ @9 I4 X: x" V' Z& }                .gpio = DA850_USER_LED0,8 D) q3 b* n/ R  K  Z' `
                .name = "user_led0",- p$ O0 R% l+ u& C5 K. }
                .default_trigger = "default-on",
& c1 n+ k7 J( s( m0 Z% v; h- C% K. E        },
. {' ]* M5 e% d3 T+ {        {: i5 B+ f$ E2 s5 X1 H
                .active_low = 0,5 b1 y& R7 `5 c
                .gpio = DA850_USER_LED1,6 F& U# ?+ {5 k+ T; a# g. q# n1 m
                .name = "user_led1",
  x9 W- [' m+ t2 x8 u! X                .default_trigger = "default-on",
. S* o6 E$ \3 R5 |" V+ p        },2 q0 _2 f* w9 Z7 ^
        {
. q7 V! [& u2 q# E% T0 ^                .active_low = 0,/ s% f  O/ ~1 z7 Z, |
                .gpio = DA850_USER_LED2,
  N% Y( Y5 z/ H                .name = "user_led2",' ~4 L1 p( q  K  @
                .default_trigger = "default-on",
1 z1 _0 V+ K) {: j+ n        },# X- \* m; {4 x
        {
* \" m* T* F, Y- i/ F4 U. s                .active_low = 0,; S) u, q5 t$ D
                .gpio = DA850_USER_LED3,
% {3 ~8 j) N0 R% B2 {                .name = "user_led3",6 c# m9 h! M1 ?7 f
                .default_trigger = "default-on",
/ [. u+ U5 U1 @8 r: K$ y        },
5 M% z  u; \& ?: N4 E# H' Z};
. p7 e( E0 j8 w. ]' p
! `; d- [6 S, |' `static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. y/ f( N. V8 X3 r        .leds = da850_evm_tl_leds,9 x% H3 h+ a/ w% y* T+ o
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 h% t: q; I# p" R* p};5 K0 R! z: F6 Y+ h

  \9 [# G% W" u6 _static void led_dev_release(struct device *dev)
, T: G. o9 Y" h{" m) M' E# M; t$ [
};
+ j; p" b8 Z8 e! H3 g& N
, [, [5 H- F  |4 O( B/ C% \static struct platform_device da850_evm_tl_leds_device = {2 t: S+ X0 c2 m' D* C
        .name                = "leds-gpio",
$ [0 `" L7 {' k4 x& B' Q/ \5 s        .id                = 1,% Y: e6 \% e+ ]2 S. ]
        .dev = {7 s" U" r# E8 D  C; c7 \8 Y$ U
                .platform_data = &da850_evm_tl_leds_pdata,9 c" N. K* @' E
                .release = led_dev_release,- z3 m8 F( x" y
        }
  s# B4 z( T; x* }5 G- s5 _};
# D6 o- y  S+ A+ p" o; O& D' K
$ m6 W" P& u$ R0 }$ g7 G& ustatic int __init led_platform_init(void)
( s' e) }) Z* I& P4 X: |{
, o: E! f8 s9 Y* m        int ret;- U: U) a: S$ p( u
#if 00 S0 E% J9 z1 `- ^6 ?/ |
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 W( _# k& }+ l" _$ r+ Q
        if (ret)
" U4 T* `# A$ ^0 ~- c# y- K% m                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- P( X; h: [6 C" S+ I: ~
                                "%d\n", ret);8 p9 h% b0 `* O; D
#endif7 P- K( r, ^2 S1 p1 W0 Y+ q
        ret = platform_device_register(&da850_evm_tl_leds_device);
, h: M6 N* @$ O$ j& G! y$ h        if (ret)
( P; G8 ~0 q1 I! C# f' G                pr_warning("Could not register som GPIO expander LEDS");8 a, l. M/ _. Y' E( ?6 s2 ]& n
        else
4 b& `5 |/ [( x$ ^7 y1 N$ j                printk(KERN_INFO "LED register sucessful!\n");2 Q& A2 v1 r8 ~- U1 J2 s. k  b
* X/ O$ {* q% a5 L: D8 s
        return ret;
0 ]7 ~) A$ u2 u- V) ]( y" \5 ?; I  M}
5 |2 B4 J  H5 z. e$ U5 Y2 N2 B! Q! e7 l$ j6 P
static void __exit led_platform_exit(void)
: D! _1 b. f9 F9 b( I# B# y; U{9 W6 |% L7 S7 d0 s$ w7 W
        platform_device_unregister(&da850_evm_tl_leds_device);0 k7 r; @% j$ m0 Y: z
/ ?3 y9 A! c; M+ E& o5 F2 D5 R
        printk(KERN_INFO "LED unregister!\n");
% B+ t% w/ d% z5 @3 ^}5 M  r# _6 d" a* p. \
& Y  ?2 f  r/ E: M, o6 S: p
module_init(led_platform_init);' v) S: u9 o% A5 d9 n
module_exit(led_platform_exit);
/ F. \- A, v% [5 ]
7 b( j2 b) L9 i. I2 E* aMODULE_DESCRIPTION("Led platform driver");
, `6 n$ R* t; z  jMODULE_AUTHOR("Tronlong");. @$ M  k% w- h& d7 M# ?
MODULE_LICENSE("GPL");
9 Y3 v: j$ j) O% G  {
- r; j% `* P, H' n+ x- _3 r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-21 05:04 , Processed in 0.051198 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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