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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# S2 V: u+ p3 d$ ~3 \7 a9 R0 k. Y3 n
#include <linux/init.h>* f" _4 M8 f2 o9 s+ d: G
#include <linux/module.h>
8 L0 e+ F7 p% G/ [/ P#include <linux/kernel.h>
9 N+ t4 T# m9 z3 ^% F% L#include <linux/types.h>
& a( g5 n& z/ k: i+ l#include <linux/gpio.h>
- a+ {0 F8 R! _( f& [( @1 Z+ O#include <linux/leds.h>
  L! l8 _' V" w" y4 z3 P#include <linux/platform_device.h>/ z8 @1 `# E: |
! k7 Q4 ^( u% j4 K) N$ t& T
#include <asm/mach-types.h>
& y  @% g8 x& |  M9 \$ Z' v#include <asm/mach/arch.h>
" q& L) z9 h8 \7 t2 n6 w#include <mach/da8xx.h>9 m( _; g0 ^" I# V
#include <mach/mux.h>
4 f, m+ H( j3 ]; n) j
4 Q4 M  N  p& p4 |& T- Z2 z: U* {#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& z; r' K* q7 ?- ?: O. U5 a7 W
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& c8 a! c/ Z/ y. c#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 t8 C7 G( k! m3 P6 N
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& i9 y  b$ \* Q& b' J
8 x$ @$ {# d4 l$ {3 z/* assign the tl som board LED-GPIOs*/# l0 j; \' ]: H; @" i; k9 @6 b
static const short da850_evm_tl_user_led_pins[] = {
, ?- ~0 }+ Q  h/ N+ V% i        /* These pins are definition at <mach/mux.h> file */
5 q" D! f. \" d, k# ~6 v* o        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( P, b+ O6 Y) H' b- O- ]: b. D9 S
        -1' [3 l4 R, I. ~7 z
};
7 C) E" c0 F  b. ~/ {9 t! B! t) B  E! b$ w! p; x8 z% W! T: B
static struct gpio_led da850_evm_tl_leds[] = {
! @. R# t' P( d2 r4 r        {
6 O# t% M$ C5 {3 q3 W7 C6 g1 i" x                .active_low = 0,! x5 H- Q$ s& {' n0 O& Q
                .gpio = DA850_USER_LED0,
0 W5 w% N4 T" x' q8 y1 K                .name = "user_led0",
9 O! u7 o+ I- W4 Z                .default_trigger = "default-on",
3 W* b7 Z$ f& E        },
6 B; o5 f% W& I8 A        {
+ y& }: }) w$ G/ n                .active_low = 0,' B4 i/ v. d0 i8 g4 [; N# ~6 O
                .gpio = DA850_USER_LED1,# L7 P# f# j& ]# S! K
                .name = "user_led1",  S- v: o: ?) w+ u$ g* X; |
                .default_trigger = "default-on",
1 E2 s" U6 ~- @        },
, V# ~0 I8 n9 |1 |7 u. A4 p        {
9 z- A. j. C2 ]1 F; `- U# s* D" y                .active_low = 0,
6 E6 y" C: R# N' e3 j                .gpio = DA850_USER_LED2," V4 B5 B7 O5 a6 u7 B3 z" h
                .name = "user_led2",
- y0 T$ ~; [! ^  |% T7 z# V: A                .default_trigger = "default-on",
; y/ o/ x2 |0 h/ o3 k1 s* z        },
7 d7 _6 ?; ?6 C/ N; c& \( U+ G        {0 D) e7 j, |0 f8 b: M
                .active_low = 0,
0 W! ~: A4 s$ U: d+ {* h4 R                .gpio = DA850_USER_LED3,2 _5 r; g5 r/ p2 y( B9 o8 R
                .name = "user_led3",
7 s, E1 l8 f  @" n/ z* f                .default_trigger = "default-on",/ y/ p( U# o% V6 V4 X$ z
        },
7 X: @' u8 f7 L/ @- P  L};
$ P* ]4 Q% {+ n: h/ {9 ?/ @/ X
/ ^! z! d6 O' Z% O0 bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" g" l; U& ?# s7 ]% Y
        .leds = da850_evm_tl_leds,
7 E9 ]1 }8 q' x4 d8 P        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. r8 _; ~& i% {6 F( K
};' I; V8 L- o3 }' N5 b
7 ]6 W; h4 s- T
static void led_dev_release(struct device *dev)
: t9 G/ d( X1 n% p{4 w" _' A9 m$ ]6 d$ W# {
};
! A9 w$ E& r2 E: z5 c/ J
. H" Q* D. @+ @( K  K2 Zstatic struct platform_device da850_evm_tl_leds_device = {
" u& G) s  F9 i$ b2 q' ~        .name                = "leds-gpio",; w& B1 X8 V- ?; |
        .id                = 1,: b% Q7 [7 _* H
        .dev = {
6 T0 j4 ~6 T- f- c* k, S                .platform_data = &da850_evm_tl_leds_pdata,
& Q: o  _8 E% Q                .release = led_dev_release,) Z9 T8 B! S; }8 m
        }; v2 l! ^% }  y( E2 t
};
" J9 f& ~5 x* [& V- h+ T' X4 w. b7 y7 K6 b5 q3 w
static int __init led_platform_init(void)# N4 p8 ?2 z# w3 l
{
6 c4 s: d/ l. e, t# Z& q2 ~        int ret;1 q: E9 W1 |+ ?5 P% _
#if 02 @' F0 G; t) _! Z0 B6 `
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' [. B/ n9 m% c) s6 K1 |
        if (ret)
$ V& ~7 v, v# W5 `3 `6 _4 e* x                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: R/ f4 Z1 m1 A                                "%d\n", ret);
, b9 r& D# t0 v* F#endif
) A2 r  o: N, e2 c7 S        ret = platform_device_register(&da850_evm_tl_leds_device);
9 i# k# R4 ~0 q8 E( R% [( \- m        if (ret)& a0 c# o) k+ q' v
                pr_warning("Could not register som GPIO expander LEDS");! Y3 m, e) t' T/ j3 b6 I
        else0 Y/ V& W  L9 i# X7 g4 Q
                printk(KERN_INFO "LED register sucessful!\n");, v! s) t! ^5 k# S2 i( \

" c' k, U: A/ c3 L8 H; d% D        return ret;2 x4 w: k& r9 k# {) v
}
  Y! B3 Q0 }4 ]" P6 c! t
$ [/ f6 L" s9 j- E: B/ _static void __exit led_platform_exit(void)# v! i4 y, U) t3 Y; D* V( i: c' y2 x
{
2 a/ m7 O9 j6 v" o        platform_device_unregister(&da850_evm_tl_leds_device);5 t! B$ R% t( I& n. t* Y5 B9 X
6 k! t6 |& n0 X/ ]
        printk(KERN_INFO "LED unregister!\n");2 n- F0 D; \* t8 a( ?. [, d1 v
}5 a9 `" r% S" Z3 F  N5 L8 E

% C" E8 @6 I" _8 J0 omodule_init(led_platform_init);4 \3 Q2 J* E9 R0 y
module_exit(led_platform_exit);
* @: Y) u5 P: `& r' f1 e: E9 @6 q% ?) C* P8 b& C# Q5 C
MODULE_DESCRIPTION("Led platform driver");- L: i4 b; e% \8 H9 z2 E% }
MODULE_AUTHOR("Tronlong");' i! o& P6 ?6 k! h
MODULE_LICENSE("GPL");6 Y( g  k; |" h4 F$ \

$ D2 D$ _6 o) ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-13 01:34 , Processed in 0.037497 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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