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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 U; `7 W  s" x#include <linux/init.h>2 m: P8 g! Z3 N0 j
#include <linux/module.h>
) B& q+ Q" Y% w: o5 ^) R#include <linux/kernel.h># M: ^' s: l3 v8 x' s( ~5 W* ~4 L
#include <linux/types.h>2 w$ V4 B4 j0 e% c/ ]
#include <linux/gpio.h>. B/ q- z. K$ C
#include <linux/leds.h>6 x9 E7 p9 x6 v% i! J, }5 C/ V
#include <linux/platform_device.h>+ c% L# o& r2 y  ?( I6 _
7 X/ Q  H# G* o; L, a1 d3 ]2 g* C
#include <asm/mach-types.h>5 A0 r0 B1 a3 ], \8 m; Z; y" A$ J2 {
#include <asm/mach/arch.h>
3 r7 s2 `$ N0 w, N* ]#include <mach/da8xx.h>
5 ]7 O+ v8 L9 }4 l" d$ C#include <mach/mux.h>
( S+ P2 C, V6 ~& l1 a4 Z1 a  {; q% {! |* O7 F  S2 G0 c  x4 S
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 ?" t  z2 T3 Y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- c) n9 k# h. O
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) s5 \7 A! e  t
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# V% T: y1 f% K. o9 T
  \  U3 B) h6 X& x3 s& N4 `1 Y- T  F& S
/* assign the tl som board LED-GPIOs*/
/ Q3 e, `8 L2 q  U0 K$ {0 Tstatic const short da850_evm_tl_user_led_pins[] = {
9 i7 L- E+ F4 r; ]" ?( \) q" z        /* These pins are definition at <mach/mux.h> file *// A/ {& O) w6 z2 P; l
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ \  `6 A6 ]- b$ K5 T1 N5 {
        -1+ f7 O3 {0 T1 \4 H( \( ]9 O4 K
};
% c0 X8 S! h0 i) |, M( Y! j
0 B# ~7 e! ~! D/ I" \+ c9 Z7 Zstatic struct gpio_led da850_evm_tl_leds[] = {# e  D& r& F- q  G
        {
6 n  g: t. V  R  A                .active_low = 0,4 ?  o" @' ?; t/ q( \
                .gpio = DA850_USER_LED0,* J7 R, A- G) ?4 q' a, J9 J; w
                .name = "user_led0",  F& h, y; Q9 z7 ]" X1 ~; }
                .default_trigger = "default-on",
  ~2 ?7 v+ ]( V  R- ?0 R        },/ L" p6 u0 P- A3 \! ~8 y
        {- w2 K: i$ ^7 }5 H! l" d
                .active_low = 0,9 j- C. b- n; @8 v% r! A1 |+ _
                .gpio = DA850_USER_LED1,
* E# x$ t" f8 @                .name = "user_led1",
( v6 L2 g9 R/ x. {, d                .default_trigger = "default-on",
  o6 n8 t: b5 O/ p8 B% d& X        },% S- A+ N9 |4 m# h
        {
: R: c5 j0 D) _: E, l/ v                .active_low = 0,! ^5 ?. H- j) y7 \
                .gpio = DA850_USER_LED2,$ G. W7 n* U; u2 |' M
                .name = "user_led2",
; A( r# q; C% p9 W" b! L! W                .default_trigger = "default-on",
5 E  b, S4 B* a/ W7 w+ Z- b        },
8 D& U! o+ e4 \1 M  x& @        {
/ I& Y/ ^& v7 K2 |/ x1 U" ~! l                .active_low = 0,% A( F* b6 c/ \2 Q2 D
                .gpio = DA850_USER_LED3,- f& w* F8 T; S2 e5 k& S4 M
                .name = "user_led3",3 T$ S6 t( g3 q3 S' H) X  @7 E" `
                .default_trigger = "default-on",
% I& i: F3 j& o        },
$ U. x% `% J3 S. Z& ?% v};  }: ~5 O9 |# P

( x, E/ d" @6 j  d* w8 Dstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; ?% i# \- Y4 n& i        .leds = da850_evm_tl_leds,) I( w1 i7 w9 \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" B: e' S; s( m};
+ Q6 o: f7 F; o1 [+ Y4 j3 @
( \5 J3 u, ~3 i) T, G, ~3 {static void led_dev_release(struct device *dev)
) p) b" }/ i% B* {1 o7 h{
; P$ d% |' K; n" ?};
' f) w" `8 l1 Q1 l& E; S
# A1 z9 O6 ?) q+ Pstatic struct platform_device da850_evm_tl_leds_device = {
, h1 A; A- x/ w9 @        .name                = "leds-gpio",  S5 H1 u* u8 j
        .id                = 1,3 ^9 N8 u( [, g; k; s4 \0 T2 f+ b- W
        .dev = {
8 X7 j' K9 ]/ {                .platform_data = &da850_evm_tl_leds_pdata,
+ B) b4 D9 |& n% }, W' G4 S! M                .release = led_dev_release,: d' x; Y: J, p5 G& }8 Y6 ?
        }: u1 T) H- B$ e9 J/ ]/ h
};1 P" I4 W) y3 x) K9 {6 A( M

7 b! x/ U8 A6 C. T9 j8 Kstatic int __init led_platform_init(void)+ d4 I$ V, e8 R6 V& X
{" o! h1 z! U) d3 u# D. V
        int ret;
. \4 o# j" n3 o, Y& T' r, @#if 0
4 T) R* p6 e- _5 G5 k7 d        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 u* R5 o* R7 n9 C
        if (ret)1 U! X* A9 _3 A" W8 V
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& Z# |0 i8 T4 C. l
                                "%d\n", ret);: ?. p, ~* P' A) q
#endif/ L$ W( H- U; ^$ O
        ret = platform_device_register(&da850_evm_tl_leds_device);# S; m- P( h4 i8 B2 Z& O& \
        if (ret)4 o( ~4 i9 s( |  C* X; u
                pr_warning("Could not register som GPIO expander LEDS");- ^/ c4 Y/ Y, y0 k$ _. W0 r2 ~2 A5 z$ N
        else$ M: ?4 v# F1 N4 }" x
                printk(KERN_INFO "LED register sucessful!\n");
. {" Z5 M$ Y. N% b
; T& U, n& T/ _3 @: x3 G        return ret;
1 D: s- o. i$ x3 S  Q' w/ V}
6 Y: M+ k+ h6 a7 {* G# e& t9 N
3 t* B  v1 V5 B, P, p8 l; @+ rstatic void __exit led_platform_exit(void)
( h$ t5 L: F, y1 M{8 c$ z( o, F9 Z0 s# \
        platform_device_unregister(&da850_evm_tl_leds_device);% p2 e% J; U" y: W- |5 O. }

* ~" p4 O+ W5 O6 n        printk(KERN_INFO "LED unregister!\n");
# e9 m9 j( X% t1 C* a$ }' g3 D' s}1 L( x0 ]! P  V) K! T6 U1 u2 t
9 ?/ Z+ D" u+ k/ x# a) J6 M& Y$ M
module_init(led_platform_init);
, D- i7 f2 A4 z: z& {( H' ~module_exit(led_platform_exit);2 F) X! R1 P9 |# S

$ Z! p$ N0 ?4 x& FMODULE_DESCRIPTION("Led platform driver");6 d/ T* S0 }  K. H9 w
MODULE_AUTHOR("Tronlong");5 a2 v# u  f4 W0 y* V
MODULE_LICENSE("GPL");9 o9 p9 M3 [7 I1 h
% V% J* V* b- A5 n% x% [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-14 18:08 , Processed in 0.034871 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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