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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- C+ a6 ]# D! Q1 {+ n* t& ~
#include <linux/init.h>) I& ?5 n9 @$ X  m5 L
#include <linux/module.h>0 g3 M& U3 |/ f4 b
#include <linux/kernel.h>" \) i# d" t0 C3 l
#include <linux/types.h>
! S2 o  q4 ?/ p' c3 B- G. s/ X+ ]#include <linux/gpio.h>
5 N( E1 ]1 q' u7 D! F; }#include <linux/leds.h>
1 _# J0 S5 \% G4 V* O- k* R#include <linux/platform_device.h>
& B% V) ^& c! p  G
, \+ Z; e: `! n0 A) D#include <asm/mach-types.h>: t: p3 `( L8 r
#include <asm/mach/arch.h>6 |3 `$ r5 A$ J- W5 W
#include <mach/da8xx.h>
* q9 Q0 ~7 o% L" x/ ~0 m" \. _#include <mach/mux.h>
/ h+ c6 h+ R+ k) y4 R! l$ B1 t+ n( S' d% F
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- N6 C. {8 l  a: Q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& y; M0 K2 }/ d#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 H' a( u* L& {' y# P+ x
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 w9 O/ v4 ~+ \* f3 B1 J- q2 E
3 {. `( ]- G$ Q1 i& I  h
/* assign the tl som board LED-GPIOs*/& R6 \* S) U! g: S0 ]) U3 S
static const short da850_evm_tl_user_led_pins[] = {) |: y3 T0 x# i. Z( c* J
        /* These pins are definition at <mach/mux.h> file */+ I9 ~, q! W2 W5 I1 h- f9 |
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, y% R; ?7 i2 n. y/ G( V! ^+ b
        -1
. m+ }6 D0 O9 l9 g( L- J7 ?3 |};: F: |. q1 m2 d! T% l0 d

* |9 {/ u" _7 f& b% T; D+ Wstatic struct gpio_led da850_evm_tl_leds[] = {
# f+ {' J$ |/ E# G+ A4 x( h        {
9 O- @2 e! g' {" j. N* V                .active_low = 0,. m, ~0 Q' P1 v( M1 M
                .gpio = DA850_USER_LED0," E9 V8 E3 N. W& X& t/ u  C+ q/ D
                .name = "user_led0",
) I* x$ c7 L, {: V7 j  J                .default_trigger = "default-on",( U8 M0 `/ {5 p3 ?* W6 h
        },5 G" A7 D% s  e3 D( k# G0 S4 U
        {: z; A% Q1 }3 U( j; k5 [' ^0 k3 Z
                .active_low = 0,
( ]' K) V$ d7 ~  u3 M# q                .gpio = DA850_USER_LED1,
2 N* a  O8 i. \5 v( L                .name = "user_led1",$ F8 J6 P% T; ~
                .default_trigger = "default-on",
0 Y! J8 W) p# |+ d        },
8 j6 h% R" R* j2 g$ ^3 }% ?, D        {
- z# n$ k9 ^5 D" O                .active_low = 0,, t2 z/ `% l  [* X
                .gpio = DA850_USER_LED2,% _6 m0 E. H' u3 a* W
                .name = "user_led2",
6 K% z/ R$ B& W& C. j: T5 D) s, z                .default_trigger = "default-on",
3 ~+ g& F* ~& N1 r+ E, N2 \) r. a3 U        },
, Q4 h4 R- W# `        {
) ?4 H7 [' B0 k/ V                .active_low = 0,
0 A* {1 m; f* B6 E( b4 z                .gpio = DA850_USER_LED3,
9 V" t% Q; K2 u5 G8 ]: d, [4 T                .name = "user_led3",
$ J1 I- u) d, O5 ^( ?                .default_trigger = "default-on",
- p- t+ q. ~+ d) D7 V: [' G' T2 T        },
4 V% O9 v" ~" G" d3 @};! J  R$ y% H0 g' p0 s# `

( W% v- k* n7 F# v8 Qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 a7 ^7 ^+ u: h. k& a
        .leds = da850_evm_tl_leds,
. @( W. l8 l$ P+ f2 j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, z- s- H$ `* I& i};, J6 I& R& b( x+ s! H3 Z5 y

9 @( l- a& t/ F8 X! N+ |8 o7 _" A* mstatic void led_dev_release(struct device *dev)6 i5 c6 p, [% G& z& `
{
* J$ ~' n" h$ w% i* X/ m. w; R/ i# R6 [};- e: v5 P$ B% N  A
1 G9 s' d9 z* y  T" q- v
static struct platform_device da850_evm_tl_leds_device = {- B4 u2 ]6 O$ e9 ?8 s0 W
        .name                = "leds-gpio",
+ g# T; }: Q$ t8 E& u2 S9 E        .id                = 1,
. v$ H2 y& G) }& x# F  M9 z        .dev = {8 V% I' N+ d; p5 Z) L# \& O
                .platform_data = &da850_evm_tl_leds_pdata,
  T3 {  L% g: N                .release = led_dev_release,
' t. W& |( d; X        }6 c" e' N% [9 y  O
};2 }" z2 j% T4 }. `$ D1 E" `1 v7 j

% }3 Z  J0 p& E# |" B/ H2 `! ]static int __init led_platform_init(void)
7 v1 a$ C& i1 |2 ]* P3 h{1 ~0 v1 g* X7 F# f( j. a! u. [
        int ret;
& U) r5 ?& a1 Q, y+ Z  g#if 0
7 ~! c8 f2 P9 ]+ q1 o4 [        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 o0 ^5 ]. D, F8 N4 M; j        if (ret); p# m. b& j3 Y7 @# x" _- q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 W# j4 e& ?$ P6 z
                                "%d\n", ret);
* {6 T, m8 |4 I, a( V& N( _#endif
% |) R+ b/ v. _. D' i3 c4 i- k        ret = platform_device_register(&da850_evm_tl_leds_device);
' F4 X/ A2 _5 m& v/ x8 {        if (ret)8 _0 p( u- ]# U& t
                pr_warning("Could not register som GPIO expander LEDS");2 \4 Q, O% K% e& V
        else
& T/ m. Y0 q9 P9 n                printk(KERN_INFO "LED register sucessful!\n");  O; Y4 n* \+ U2 D7 a: h  K

. s, F, {7 J& s$ y* [& X  j$ J3 t+ A6 x8 p        return ret;
/ F. h+ Q) S# f' Z" G0 \4 _# D' V}
3 _* W" H8 s5 t" m/ V, g
, C% J2 i" S; ]6 X9 t% U. Rstatic void __exit led_platform_exit(void)$ h& H6 ]: V0 \0 K8 u4 K
{/ ]6 p  O( c* n2 Q: c8 G
        platform_device_unregister(&da850_evm_tl_leds_device);* B4 {9 o8 Q9 F4 A9 e  Z) M
# l! H3 d  [2 O5 d: E& T: Z
        printk(KERN_INFO "LED unregister!\n");$ s. @+ [0 \- V2 l
}1 w; R2 N; `6 S- G9 [

8 b. q8 ]/ ^5 l, A1 a4 Umodule_init(led_platform_init);) R4 Q/ q8 e  ]
module_exit(led_platform_exit);
7 }* ?; A; x8 K% C. x) b9 s
9 ^( d% e  Y; c. ~3 @9 B/ qMODULE_DESCRIPTION("Led platform driver");1 q9 W& T( M+ W( d/ X3 F2 a. _( T2 }7 K
MODULE_AUTHOR("Tronlong");
5 g4 ~- D2 T* {# @; H! b. W0 [MODULE_LICENSE("GPL");% B0 b: q, P. a" V7 z* j
- g+ C/ m+ e& V# n& f5 Q3 M! _7 ?- X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-7 12:52 , Processed in 0.037201 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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