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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。: x1 X1 \3 O/ M. b
#include <linux/init.h>) Y% G/ ?% s! @' r
#include <linux/module.h>
5 ^. o2 ~" p; i$ P  f! o: a#include <linux/kernel.h>
1 |* b! Q; m5 F) }  j# L. U#include <linux/types.h>
9 V' `; p+ O: v. _#include <linux/gpio.h>; H& _9 b& C; I# D
#include <linux/leds.h>7 _3 X3 w* u/ P' B
#include <linux/platform_device.h>
1 u( h9 l. T. H: e  X
3 n3 g% d% k% V  a* I) s#include <asm/mach-types.h>
8 R9 ^3 n+ a# Z- A$ F#include <asm/mach/arch.h>
. J' p& j3 \7 X- F#include <mach/da8xx.h>& a7 [+ M' s! C: D2 q
#include <mach/mux.h>
: V- C7 N/ c4 A# [  V; F3 i
* v2 _9 x2 p) j5 a3 P#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" `: O0 f) p: p* T8 U#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% [/ A- q, z; L# x#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 [2 B2 D( [! j4 M#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ M% A; s1 R4 C6 }2 I- t; m% l* j2 N
) O# j0 j: b, i9 F! f8 Q
/* assign the tl som board LED-GPIOs*/( [/ L7 b( B) B. N3 D
static const short da850_evm_tl_user_led_pins[] = {
9 I  a0 Q4 F5 D: m/ Q        /* These pins are definition at <mach/mux.h> file */" ?, i1 ~0 Q) ], h
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, a) u3 v1 z; `" e5 [" p4 k        -1
& H7 R8 }; ]  N+ ]6 T};# I. U$ _( t  `; q

; V; q3 E! L: `+ s- Bstatic struct gpio_led da850_evm_tl_leds[] = {' A* X8 @7 k; R6 A: h' I- D4 j, a
        {
1 B! k: z$ ]6 t* ~( R, h+ j                .active_low = 0,  r5 r4 b/ M$ h5 w- v
                .gpio = DA850_USER_LED0,
) |3 |( f: A' V/ u$ x# v7 l7 x                .name = "user_led0",
. Z( A- y) ~; z3 D& {7 q- Y                .default_trigger = "default-on"," K) d. E' C* |; \& n+ T/ Y
        },
) l" M/ G: M1 A- I2 T. H, m        {9 t# i6 Z8 c3 G$ x  M& Q
                .active_low = 0,' t. D; i( |1 A. |( P( ]3 q
                .gpio = DA850_USER_LED1,' W; A4 I& u) c) i9 Q$ G+ |
                .name = "user_led1",8 H& U9 o( ]( B' t
                .default_trigger = "default-on",
9 [7 Z$ }4 `; o- {0 o. Z+ S        },+ D2 t' k% L% d* s8 k
        {: V4 `+ T$ @" w( g, W
                .active_low = 0,
3 B2 S! I- s+ H8 D$ g                .gpio = DA850_USER_LED2,2 M/ V. b$ T5 i/ f( z- R( \
                .name = "user_led2",0 w) d7 H6 u; y# R% r, _0 v
                .default_trigger = "default-on",/ u6 e* N) v; x4 c* l; _5 F1 ?( A
        },6 Z. H* l+ [  @  f: l
        {
0 @) b& Q8 r- S1 S6 J( q0 v7 a9 w                .active_low = 0,
5 i$ P- }4 _3 Q" r& \                .gpio = DA850_USER_LED3," ], Q& m- V- Z" `- T. X
                .name = "user_led3",* k* }: e) [+ L2 l5 ]
                .default_trigger = "default-on",3 l: x! `* S' }! z- O* L
        },
7 b) H7 v) q2 M( P' e};. }9 o( |7 r6 }4 Q! M  o
3 p0 t  _- e# [8 {/ C
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 Q" z$ N, t3 |2 a; Y4 O, \        .leds = da850_evm_tl_leds,7 D4 j6 t, n3 c) q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, ]( Z4 P0 |; V+ L% g
};) D- v1 f& _7 M: e% n6 }

) v" `- Q1 [" o+ v- `7 w: Z+ M# X6 [static void led_dev_release(struct device *dev)( r( [; G: d$ Y6 J) v, @4 {
{
& P7 {- z. D( N, F( _2 N};  \4 Z9 W# z, N* p
8 N( H6 P% I3 Z' T9 L- N* y! j: @
static struct platform_device da850_evm_tl_leds_device = {6 l. K2 j) ^- h
        .name                = "leds-gpio",
2 ^+ M# l% R1 ]2 V: v/ g        .id                = 1,
$ ^& r0 m4 O6 W        .dev = {- O) r( b/ M' n3 g2 N+ K8 V
                .platform_data = &da850_evm_tl_leds_pdata,3 j) I6 X$ P6 O! E
                .release = led_dev_release,
+ F9 T0 L! z+ [& B        }
% V4 e' O2 W7 o5 S};
- F9 l& ^( X9 q0 j9 K9 O' K7 l) l2 y0 \4 l8 f* a; L
static int __init led_platform_init(void); X( z3 @$ |! A7 v1 o
{
  b  @/ {/ [# O, n8 `+ |        int ret;" J7 C3 N3 Q: X5 }6 L
#if 0
: _8 N9 @6 w( v/ h6 |1 B        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* p  z  B0 ]5 p        if (ret)- V. ]: F3 }! e# J, l
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" @: O, J9 p& x
                                "%d\n", ret);
" u0 R' m8 C2 D7 v#endif- R8 m9 ~0 S6 g
        ret = platform_device_register(&da850_evm_tl_leds_device);
; ]$ _% o; V. W$ Q0 B8 a) f        if (ret)5 y1 d/ \0 s( n0 m
                pr_warning("Could not register som GPIO expander LEDS");
1 @5 Y& q& z! F$ z0 L0 J        else
$ K/ d/ y: ~& N3 o0 W4 E2 x                printk(KERN_INFO "LED register sucessful!\n");) d4 l2 R* k( N  Y6 D

1 L) F" Z4 J: N. E        return ret;
  Q2 S- r9 t! y}# w% g2 h( i1 |" e
* {" T& O) y5 \. J4 p3 ]
static void __exit led_platform_exit(void)
- T! g. W2 @/ G/ i- |2 R{/ Y- k1 ~( K/ ?  g
        platform_device_unregister(&da850_evm_tl_leds_device);! r6 a: F; R8 _0 x( t% O

3 k1 g, b  f8 y) Y% d! R        printk(KERN_INFO "LED unregister!\n");
; j* O( n8 ~' q7 \7 y* Y4 G/ {7 p2 h: d}" k2 ]: a# V% a5 X9 v* Z8 h& m

, p0 S  c+ c" tmodule_init(led_platform_init);9 s* k2 A) b( K; V& u
module_exit(led_platform_exit);, t( A" v! H4 V1 l" V4 }$ h/ M
1 D8 D: X, E1 k% @. t" Y5 z0 E8 A- B
MODULE_DESCRIPTION("Led platform driver");
- ~( n2 c9 v1 s2 B0 o$ y& oMODULE_AUTHOR("Tronlong");0 ^1 w& S& q* q- K& W8 b
MODULE_LICENSE("GPL");% T, h8 E$ ^+ H! a  z2 z8 J8 j

4 @% c/ c+ e! ?) v! W& f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-26 21:57 , Processed in 0.044448 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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