程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 U# o4 q) b+ ^#include <linux/init.h>
( E' O6 A; e' d4 y7 ^; E9 g  V! A1 b#include <linux/module.h>. O5 b6 o/ M: ^5 E5 n3 i9 a
#include <linux/kernel.h>
/ G% L( g0 z( S  b7 O#include <linux/types.h>
! `3 B0 Q% d( a( b: c#include <linux/gpio.h>' B& w8 z+ }2 Y
#include <linux/leds.h>
) O6 \6 d1 ^$ B2 n& i#include <linux/platform_device.h>: c" B, K  h% @$ Y! _' b) g8 A
4 ^5 `$ c. }, K2 r
#include <asm/mach-types.h>+ {( a- _, N) n' {2 c
#include <asm/mach/arch.h>
0 z4 Z4 g9 x4 I; s  H" Y* @#include <mach/da8xx.h>
/ ?' T( s1 @8 r  Z: {1 _7 \; B#include <mach/mux.h>
( Q6 z8 r2 ?' C8 @- l/ f- B3 ?5 S& r' m7 j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 [. l! y. P3 V$ v; w& [5 d#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! }5 _6 j) `& ?* e
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 B4 z1 b% z& ]/ e) k#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); v- a/ q$ H$ F+ r" z
; n  \; N9 U/ s; j. E
/* assign the tl som board LED-GPIOs*/
3 J. x5 Y. ]2 H7 G, hstatic const short da850_evm_tl_user_led_pins[] = {
2 z0 c  d& w* C. g/ X0 }$ t6 ]        /* These pins are definition at <mach/mux.h> file */
' V0 E. U6 e+ @& P' y$ u        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ u; q4 i3 O" e
        -1
+ A8 c* ^& a" A" W( V/ j" u};) j  {% B9 J$ l4 T
2 ~' T) X* I% R
static struct gpio_led da850_evm_tl_leds[] = {
8 n! h, s% u2 U2 a: i2 t$ K        {
& S8 n' f. g8 V6 w                .active_low = 0," B# D. C# q2 p9 U$ L# O: L
                .gpio = DA850_USER_LED0,6 r0 w4 }# i5 L, c* N
                .name = "user_led0",- R7 _* y& ?. M9 e
                .default_trigger = "default-on",
& B. G3 t8 h$ k, F% r8 c# Y        },( j& W$ Q7 C0 {0 J
        {, Z& @$ X% C5 t( A
                .active_low = 0,  u! R3 `1 k# [$ M+ l- d8 ~/ _% |
                .gpio = DA850_USER_LED1,
8 q$ H! ^2 g' ?9 V0 L2 E                .name = "user_led1",
! B, _: I& A4 c) i, v' t, O7 k$ m% c                .default_trigger = "default-on",
( g1 R* J0 d, ?  V; ]        },
8 Q- J/ }( w7 A3 y  j9 [9 K        {
' e. u3 s& l1 y) V& j6 E2 \                .active_low = 0,) y5 r/ Z& f/ N
                .gpio = DA850_USER_LED2,& v. r+ P2 H$ p4 M' [
                .name = "user_led2",
' w. B% f" r4 |  ]3 E5 Y                .default_trigger = "default-on",. B- q0 @) A/ p, l# F
        },
& \, q% h0 J% l0 D5 [        {
1 ?. O. [- q' `6 Q  r! d$ e                .active_low = 0,
: N$ a: ~! R) i5 V9 y: c                .gpio = DA850_USER_LED3,4 O& T0 D3 w0 P7 n
                .name = "user_led3",8 A, Z; y1 [  A7 g  b4 m2 v4 J
                .default_trigger = "default-on",
) P! r( p) O+ A* {4 e        },
' I: \! F: T! U8 q2 j# i};4 M6 M) t9 j" R, V9 p2 H7 B
  m7 ?* J4 _4 w5 a
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" w6 R- |9 ]% }        .leds = da850_evm_tl_leds,
. X6 I+ v2 x$ j3 N2 |& n4 ^  e( X$ G        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) Z( `7 T, n: F9 i% i! y
};
* K3 S5 M. X( E, g, o' e" q. ~4 P: O6 I9 F% D+ J. X. q7 h) q
static void led_dev_release(struct device *dev)* U% ~) }6 W9 c$ q# m. P
{! D( s" Q6 L/ [/ V6 \$ {' G
};, Q( T, `# Y. `0 d1 Q. L* W1 t

* t% E% G+ A3 w  Qstatic struct platform_device da850_evm_tl_leds_device = {
5 s* {8 |* U- h/ i( W6 ^/ J        .name                = "leds-gpio",& A" u- ^3 w: U
        .id                = 1,
  G1 S, }8 s) h3 }' {5 C) Y) t- |        .dev = {# y( Z2 t& K1 G. Q  `& n+ a$ A
                .platform_data = &da850_evm_tl_leds_pdata,$ F! X$ U+ V/ _) ]
                .release = led_dev_release,& u9 d) D( }: ^: [( P
        }. A3 s0 |! x: i% d6 i0 S9 i/ l$ Y
};
% I: `7 A, v$ l6 V$ p. z
$ v+ b- T# J- J4 O' mstatic int __init led_platform_init(void)
. _% d/ I9 D4 d7 G{
& k& g2 X( H( F" ], Q, H5 f0 u  H        int ret;. J1 U; p. o. z; O' l, `# Q# u
#if 0
3 _8 p8 _' T* I5 c! e0 m        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ t7 X: [) {* ^7 y/ `' g9 \
        if (ret)
+ ^- `" x: X2 S9 J! g' ?1 {                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; _5 r  r0 F1 f' K8 h: M9 V9 \) o                                "%d\n", ret);
- C  L: e  u0 ?2 R( g, w  B#endif" l5 `2 [* ^, r7 ~. t3 P# C" Y; l
        ret = platform_device_register(&da850_evm_tl_leds_device);
( [6 X  ~, D! g- c1 h1 l+ r        if (ret)
+ I! D* ~% l/ I0 W/ ^                pr_warning("Could not register som GPIO expander LEDS");& P& _  k$ T% Z) q) u& a
        else. m& V+ ?5 n; ?9 w% k
                printk(KERN_INFO "LED register sucessful!\n");
; d6 E( b- d$ X/ T
  L4 T$ p# t+ m# v( ?1 V! }        return ret;1 J1 P/ a/ u) s; r* c3 X' T
}
0 C: t( \% F4 k
( F! l: m" b# m* Xstatic void __exit led_platform_exit(void)
0 c7 p; h7 k1 ]- C0 u{
! G9 g8 u( O/ p2 b* Q        platform_device_unregister(&da850_evm_tl_leds_device);" G& t' p1 h6 @0 M2 D) y1 S
* x5 \0 Y; a1 V7 q$ p
        printk(KERN_INFO "LED unregister!\n");
3 _/ K- Y" t5 W3 M}
1 B$ l* t+ P' z7 W6 G/ f2 l5 c' n# e  j! ^# W" k1 u
module_init(led_platform_init);# W# j! }% C* C
module_exit(led_platform_exit);- u/ {6 k# E& T2 A  j4 p3 a' H
; Y5 n. u. ]1 H$ ?8 y6 J+ g
MODULE_DESCRIPTION("Led platform driver");1 c$ Q8 l& F- J; }: J8 |0 x
MODULE_AUTHOR("Tronlong");# @2 R! B: S' c3 w( ~; D1 ^9 v- G5 G
MODULE_LICENSE("GPL");
" n: m0 f# [7 ?. t( t- ]1 l
( B& s* @" o- C) C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-29 22:41 , Processed in 0.036716 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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