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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 K6 a+ a% Y! v2 `. z8 \#include <linux/init.h>
* T: ?+ t; N; S! q: o#include <linux/module.h>
3 @+ N3 W8 }% g#include <linux/kernel.h>+ G; T+ Q6 ?$ K0 I, Z% I. O' U0 q7 H
#include <linux/types.h>) a2 N1 ~" A# U- N
#include <linux/gpio.h>
4 x# L) P4 y, e8 ~5 W2 M( E#include <linux/leds.h>6 c' J$ @! K2 f5 d/ ]; K
#include <linux/platform_device.h>
+ d4 S# d4 w( p& j* h  g/ z8 Q& E9 f$ u
#include <asm/mach-types.h>1 F  B4 [0 a- ~; F- ?* [) p& m
#include <asm/mach/arch.h>. q) k5 e  y! t9 v* K! z) y& @
#include <mach/da8xx.h>
8 T# w+ Q* v% N" z' T9 C#include <mach/mux.h>
  w" L+ e$ X# ^2 t6 `! c$ \5 `
' `' j0 f7 i4 I8 M#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); m6 {6 I; R5 Q8 x/ J. e7 C
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  E! n% }/ ]6 y4 p  f3 r# U#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, P/ _4 m- v  H5 K9 [4 e" T+ i#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 ]  P' Y, U; _* }; s
. a9 n6 A  }& m8 J/* assign the tl som board LED-GPIOs*/
& R9 M  |3 Q9 W2 Ostatic const short da850_evm_tl_user_led_pins[] = {+ l# g( W! D) e6 s# K$ f' i
        /* These pins are definition at <mach/mux.h> file */
7 p7 x. a; Y) G        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 ~7 X4 V1 W' p( P( B5 [% I        -1
* c8 m" q: ^* }! e2 J};
2 n. @# [4 L% O( L1 }, Q0 Q1 L! M) P- h
static struct gpio_led da850_evm_tl_leds[] = {
1 y& r5 N. b" W        {7 ~/ K) F" d% t% u# h  x
                .active_low = 0,
5 v$ r8 f/ F5 v2 F% b                .gpio = DA850_USER_LED0,7 H" E0 b! S  U' c
                .name = "user_led0",. p* }7 W% U7 ^8 v
                .default_trigger = "default-on",
" E7 K7 \1 p/ }/ \        },
* x+ U1 I% h; J: U0 K        {$ I" }: L" k# d; O
                .active_low = 0,
: N/ o/ r/ o8 J                .gpio = DA850_USER_LED1,
1 _6 c1 y' ~: }                .name = "user_led1",( |3 G3 n6 m  L
                .default_trigger = "default-on",8 H( F6 J* b8 m3 \6 P) `2 W( v
        },
7 h; Y, P1 @' R( l/ C- o% M: k/ ]# ^        {0 @- ]: U. |/ Q* w. d* O1 P
                .active_low = 0,
2 K( A% G& F+ j& A; h; w% \/ x                .gpio = DA850_USER_LED2,* f/ R. u$ k$ A9 e/ ~
                .name = "user_led2",
) F9 F! j1 P8 j& i+ n% C                .default_trigger = "default-on",
( t5 J- X, @% f: w) H9 v        },
7 A" s: I6 y, u5 U4 ]        {: y) x7 }6 t. }" N; F+ p7 W
                .active_low = 0,
( H5 q" F7 s5 M3 \8 y2 q! \" ?                .gpio = DA850_USER_LED3,
' ^8 G9 k# w- L" _7 x" r5 A                .name = "user_led3",4 b. I* {( b; Y2 i5 Q9 m
                .default_trigger = "default-on",/ _% i& L9 R3 I7 b- t+ h. b  ?, e
        },
9 J- y1 x! K, o- x+ A% m- S1 _};
7 c7 C+ N9 t, D$ d5 L
: t. c( j$ x3 @" N4 z! dstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& M* t" G$ ~( N5 _4 J5 K, ?) ~
        .leds = da850_evm_tl_leds,
0 K$ j" L1 m, i# P        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- M4 o. G) r8 [; I: V8 N9 |( Y7 S8 z
};
6 r# m, S" Q9 n$ m+ e' b0 Q( c7 T( m9 t  A; t0 R
static void led_dev_release(struct device *dev)
: \0 ?+ a* V) m2 w& a: u( T{
* O" Q# x/ {- c8 ]$ O$ v/ X};4 P% _" I# l! [3 T, N

/ |2 x6 q$ t, w5 B, Wstatic struct platform_device da850_evm_tl_leds_device = {
7 h9 c5 k* l( e& [) p# I: X# _/ X        .name                = "leds-gpio",
' S7 I& i! K, D3 x        .id                = 1,9 W% J5 q' t0 A
        .dev = {
2 X1 m- R% d8 h. H                .platform_data = &da850_evm_tl_leds_pdata,) B& o4 q* R/ V5 p
                .release = led_dev_release,
% w- `3 j0 m" g9 }2 w' g5 N4 G        }
1 w, ?1 [8 ?, V$ \# M3 v7 X2 e};
. ]" O& {8 ?3 _+ z& b' Y' N- C2 r7 U+ ~2 G0 C% L0 J
static int __init led_platform_init(void)& U- f" U9 x9 e! v, `+ ?6 D
{
8 |7 t3 B7 D% e  q        int ret;
# H* B: n* R  n1 `5 r" w#if 0
" A6 w/ Z( @, s        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 W! J1 d( I. r1 `: n" c
        if (ret)
: J* l! O4 u. M7 w5 G1 f7 u+ r6 W! u                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 E- D" O6 _! Q4 T6 `* g6 z$ c$ o                                "%d\n", ret);0 Z# k9 T, [) R, X$ F9 z$ b
#endif
/ u: V/ ~* k; B1 L8 R6 @        ret = platform_device_register(&da850_evm_tl_leds_device);
; s, {" M# N3 @" j        if (ret)
9 c% ~4 B; }9 Q                pr_warning("Could not register som GPIO expander LEDS");
" w. e3 u* z+ ~4 F) g5 R        else6 ~* o; G8 w5 n% j; ~: J
                printk(KERN_INFO "LED register sucessful!\n");' [4 j/ D8 `* r9 Z9 Y$ l" D, k
$ W; v8 i! q, j0 ^
        return ret;+ _6 E3 a4 m: m% G# l; N% F) @
}  [- C& n4 J, N2 C

  M5 E; S# o; \4 M5 qstatic void __exit led_platform_exit(void)
  I2 |3 r6 W$ t{. P5 n% R+ R, Z4 X* h0 w9 C
        platform_device_unregister(&da850_evm_tl_leds_device);
# _" ^! ?. Z5 M2 i  T$ t/ P2 A& @8 r0 ~" \, \
        printk(KERN_INFO "LED unregister!\n");" r% e: C% L' B1 C
}# e' q: B6 I5 k; X; {- g7 }

& g7 H2 j1 w# Gmodule_init(led_platform_init);
- E) K8 U& N* T5 g  Amodule_exit(led_platform_exit);1 ?6 j$ x% j4 h. @

# R; ]) J; G3 O) i- B9 tMODULE_DESCRIPTION("Led platform driver");
- t* ^# a2 y, r) Z) G$ U, cMODULE_AUTHOR("Tronlong");1 v; g) S, @+ G
MODULE_LICENSE("GPL");) a) T/ I4 Q6 B# S9 p% @  q
5 ~% ]$ H8 D, f0 {# o6 @- I6 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-27 12:15 , Processed in 0.045130 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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