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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- H0 }, ~6 u( X
#include <linux/init.h>& N: Y+ ?8 `% v$ _! L3 v& \
#include <linux/module.h>) l! [  s. u% W. c- G
#include <linux/kernel.h>
: }+ Y; w  ~% k( m$ S. i#include <linux/types.h>
2 p: T! q; j9 p#include <linux/gpio.h>: O1 {7 E( o( j! J% ?
#include <linux/leds.h>. N/ D2 Y  W6 P9 x9 M6 y; U! Q
#include <linux/platform_device.h>, ?- S# Y0 {; B5 ^1 u! i/ Z

, [0 u5 L) k/ g. y+ ^, X3 g#include <asm/mach-types.h>) j  p* B; e" _9 C; c
#include <asm/mach/arch.h>" Z6 ?+ H3 S; C) @" Z  z' X
#include <mach/da8xx.h>
+ s$ ?: ?, ]8 m- _( k$ A/ n9 Z#include <mach/mux.h>
5 a5 _$ K& `3 @+ D' E* x  ?% k4 a1 {/ J' |2 D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): s, H9 J1 ~; g  a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 N$ P0 \$ N0 ?4 ]* G, D9 D# @#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 r4 Z& X" A8 M, F8 f5 T
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ \7 @  G' y/ I. b* F  }) L" S* B6 e* Y( S
/* assign the tl som board LED-GPIOs*/- l6 C6 e0 o. p2 Q* q
static const short da850_evm_tl_user_led_pins[] = {0 x$ I; z7 k4 I. L, K# H
        /* These pins are definition at <mach/mux.h> file */
. P" u5 F( g6 Q% B        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% \, Y8 z$ O( }$ s* ?        -1
1 x0 U! Z6 v  a% b2 D/ u: W3 E};$ {- j. C; p' ]7 k. v6 K6 d' Y6 d* n
0 L  m7 m* |0 M0 r& V* L* x
static struct gpio_led da850_evm_tl_leds[] = {
' o+ g+ |. @- c, A+ h        {8 o# s" F7 g5 O2 j- P5 P
                .active_low = 0,7 n! Y1 }" [4 ]  h- h
                .gpio = DA850_USER_LED0,
1 Q& ^! x1 a6 n  s2 b& }( m; ^                .name = "user_led0",, \2 B  N0 y* v3 i# X5 ~4 r
                .default_trigger = "default-on",& T( {  N$ `) Q$ c9 N5 y! P
        },4 d: j7 ~+ t7 {# C  d
        {( s3 q  Q0 ]- I+ y
                .active_low = 0,
- x: A4 O! s# ^5 n                .gpio = DA850_USER_LED1,
: d( ^, j; z. a: ]3 K& _* h                .name = "user_led1",7 j- V4 u5 c7 ]3 W
                .default_trigger = "default-on",
! d' z- `% h3 z0 i" j        },6 d# ]5 d3 Q" x  q0 N$ o; Z
        {0 w8 B( T% ^) L" O$ l4 Q
                .active_low = 0,/ @# j  |+ @, {& W! q. N
                .gpio = DA850_USER_LED2,
* A0 \$ n: ~' }3 f8 T8 b. m% x( P3 }                .name = "user_led2",* {: Q! X& x$ a
                .default_trigger = "default-on"," m$ F1 ?& L/ G; A7 d
        },
+ Z, F9 B. I1 V! D6 a# E+ @' \        {
# M- ^7 W; n$ `3 |/ i# `( I                .active_low = 0,# S5 G- B( r, j& j, H
                .gpio = DA850_USER_LED3,
3 ~# t1 C3 i: X: e0 f: J0 c                .name = "user_led3",
7 \3 _/ N1 h0 {; A: S                .default_trigger = "default-on",
: a8 }* m9 e8 m; {9 `) f        },, T" R/ n" s% N) Z' \4 R
};+ l+ X5 E# U; y

1 Y6 s1 G4 c9 f8 B/ L# I0 S& rstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 A8 n4 T  c2 \
        .leds = da850_evm_tl_leds,9 ]* C8 R7 `" w
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ o! n+ P+ h* i
};- k' B: z* B$ N, \; ?2 i6 K0 Z

3 r8 s8 |9 h; v, q' Bstatic void led_dev_release(struct device *dev)5 c4 f' B% g% w& v9 ~
{* D' t9 I$ H9 Q$ U# n7 g
};
. R5 w- \; z  {% d. x, _; V+ U
8 I* _8 ?& V5 Estatic struct platform_device da850_evm_tl_leds_device = {3 H6 P) v( ^+ X, r+ f
        .name                = "leds-gpio",
- S  Y' W* N+ g6 Z7 E/ E        .id                = 1,
5 y( t; u+ W6 r/ f! {$ R        .dev = {2 {% B4 W5 P7 b/ {! q! D
                .platform_data = &da850_evm_tl_leds_pdata," f- P+ @6 t/ u5 e* ]- f$ S# I
                .release = led_dev_release,
  I# I$ ^& N, b5 {        }3 s( ]5 E( }. B. F
};+ Z- b, ^  @( j7 k
* `; x# U# i: u$ ?& c2 O/ J
static int __init led_platform_init(void)1 f6 ^+ f( F3 v3 o  w" w2 s
{
) M2 ~5 O3 Z, ?( |! G# E% S. K& U        int ret;+ I6 V8 k$ [( ?. u+ {. G! P5 r
#if 0
+ q& Z5 P/ K* H% F        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 H" L- @: T2 y' V" g: U        if (ret)
  Z0 V* u% g1 E. I                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 o& O3 J4 k! Q: Z6 \5 v                                "%d\n", ret);* v2 ~' C# I$ G$ L- M/ b. }
#endif
$ r+ ^% M3 k/ O' X. e8 z% Z        ret = platform_device_register(&da850_evm_tl_leds_device);  g, C$ x: s$ d$ Q; j
        if (ret)
: i+ V4 D  r/ L                pr_warning("Could not register som GPIO expander LEDS");
' d( u9 @- e  B4 @+ o! Z7 P        else. T0 {; j7 w: @9 s6 ?+ M5 N
                printk(KERN_INFO "LED register sucessful!\n");+ ~0 O4 v( f, V5 V9 t% ^

. [' |3 l* S% b: C( }        return ret;! f, R, Q) Z! X0 q
}! V2 n8 `# q6 ?: j1 g9 _! j
; ?* [- l* B4 r+ j- C
static void __exit led_platform_exit(void)
1 A  l. \! Z* Q) j2 D{, C" A- h( g- s' K8 v$ a- k
        platform_device_unregister(&da850_evm_tl_leds_device);2 `/ r6 [) @4 k' V* R

1 H- A/ h3 E: o. ]& W        printk(KERN_INFO "LED unregister!\n");
" v4 l# g7 a! W+ q}
) ]. D! p( T% k' f( G* c9 z2 w! }
module_init(led_platform_init);- R$ Y- l4 u7 j2 w- x
module_exit(led_platform_exit);( i  B& ^% [$ G5 ~3 }3 c2 U

5 o6 k1 Y8 Y% K9 S# Q' W% OMODULE_DESCRIPTION("Led platform driver");1 [  K1 R0 z9 w. ]0 H% _
MODULE_AUTHOR("Tronlong");1 e- f$ j; K7 D( z& U
MODULE_LICENSE("GPL");6 N9 ?, o+ Z: @) O
" Z, B; [6 R+ C* B2 [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 09:48 , Processed in 0.040270 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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