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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ c6 Q$ ^" K* @! O6 @$ c
#include <linux/init.h>
- j/ X; A9 d9 e#include <linux/module.h>5 p' h3 s) i6 ^
#include <linux/kernel.h>. x6 k% G8 x* F% J' o" }+ o/ {
#include <linux/types.h>
- v# [/ a- ]6 f( [5 X#include <linux/gpio.h>
4 K- Z' d5 D0 m% x2 T#include <linux/leds.h>5 j0 y1 z9 [+ N9 ^6 T/ L
#include <linux/platform_device.h>/ n. {9 q5 |' X. s& v: q- I! x" k0 e& }

. ~& ^1 f5 d5 K! b# |1 _#include <asm/mach-types.h>
( \8 |& ?3 u" |) @#include <asm/mach/arch.h>
0 j% d& N+ U* l1 x0 `' V#include <mach/da8xx.h>
- d" G1 M# U: {3 ?7 `, l#include <mach/mux.h>
) x8 i, @6 @5 W5 h% I
1 D% Y! N8 J7 b, g#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' v# q6 r6 s; M* y2 s% X
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  S/ ]3 ~4 c; d9 Z5 v6 K$ s#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), z4 r" z1 A" M' M& J) z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); j- R: u0 J: M+ X, F$ R
% l$ a8 k5 z" o4 r/ f6 c' y' ^
/* assign the tl som board LED-GPIOs*/
2 q; B7 q9 U8 a2 b4 S# ostatic const short da850_evm_tl_user_led_pins[] = {4 Q4 A0 ]; M- n: r$ {$ c4 W& J
        /* These pins are definition at <mach/mux.h> file */6 e( ~2 q3 x, _& ^7 {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, X: G8 I1 p  k! p( J+ ~
        -1
/ C) E; {0 i* ], A4 U, M# t};+ a) L0 {% k  \- G9 ~  A

( ^8 U/ M. A% v/ E% e& h/ dstatic struct gpio_led da850_evm_tl_leds[] = {7 i  j/ X& F2 X* Q( _/ D# ~
        {
8 H7 j+ T. Z. y                .active_low = 0,* F% M# _' N1 f* e' ~
                .gpio = DA850_USER_LED0,6 D. |! Y' \& I0 K  B
                .name = "user_led0",- B. @- {* f% p# E1 Z6 e2 N
                .default_trigger = "default-on",
: {8 `# ~; ~0 v. z        },6 p/ m" D& S: k3 }6 Q* Q: U
        {# E7 ?1 a) }2 g% m% g5 g
                .active_low = 0,( O- a4 }# {0 d% t. \7 C
                .gpio = DA850_USER_LED1,
: l: S1 U6 s# @7 k* u: T6 B7 K9 J                .name = "user_led1",
2 k4 v! }: ^% ]( b: ]( x& ?                .default_trigger = "default-on",) H" G& i8 [- d5 H
        },7 {  n/ a9 C, M* `; S8 B$ F
        {% G; e) ]0 Q5 X1 b
                .active_low = 0,5 |$ M* ~2 \+ U5 v& I
                .gpio = DA850_USER_LED2,/ y1 R0 P. o; b. L8 G
                .name = "user_led2",! c" E5 H8 H9 S6 N  p
                .default_trigger = "default-on",5 {% \/ Q8 `( T1 }( ~/ W( }* K: x
        },
0 G7 x( o: t* L3 @3 P/ C+ k        {1 K( O0 q6 [: q/ W5 M: u1 ~& [8 [
                .active_low = 0,. w0 }  @: l  F5 X; m/ A
                .gpio = DA850_USER_LED3,1 ]+ y& P* D4 B- ]! {) E3 i
                .name = "user_led3",
& m3 m( P% h. e                .default_trigger = "default-on",
3 A* ^# g( B% e6 |        },
4 C' X0 k% `" F9 l};4 Q; U8 r& h( F& m
; [0 J4 W" S, e, R
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' u) |  a. u  _) P. X( E
        .leds = da850_evm_tl_leds,
% C# |" |% W; V) E# R/ p& I        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 e' E7 S7 P& L- ^. k4 _
};: D) v1 |) d+ P/ V
, N& ?% {% U2 S5 @7 C" C0 I
static void led_dev_release(struct device *dev)2 I3 A% E& h) r7 H) G
{# D! k. C3 p' ^* @" M7 _+ o8 R
};
- E6 r* X7 V$ W0 B3 U( O0 z% |6 R: v# V& B$ X9 l, r
static struct platform_device da850_evm_tl_leds_device = {
. }/ u4 D! p7 e: _# y        .name                = "leds-gpio",- ]% A$ V3 ?4 O6 q/ M0 ^- G
        .id                = 1,
: x! H  e: L% h! D. k) Z, Y( g        .dev = {6 z0 [7 S2 s. k3 _' P/ `% s
                .platform_data = &da850_evm_tl_leds_pdata,
* D$ L% j: R. G- ^                .release = led_dev_release,
; Z0 N/ H2 W; o4 h+ O        }
7 P. K: e4 `: F};; w$ M  a' N7 }$ }) i

5 f, J4 i6 h8 K# ^) }1 Ustatic int __init led_platform_init(void)
: Z/ I; K/ f) l: r{
- I* r. p& h: Z  A: X        int ret;$ Q# G' R4 u7 y
#if 02 s/ e3 O0 o$ p- e- f. E
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# R4 F' M9 g  I- d/ Z! i        if (ret)
$ P) b% d( _* k                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! O& T' d' H" ?7 h
                                "%d\n", ret);
# z6 C1 h( N/ O# y' A) _0 E#endif- n! g  _3 A+ _3 B) b- G9 {3 A
        ret = platform_device_register(&da850_evm_tl_leds_device);; ^( Q. p' C5 f* M! s/ e' P) r' L9 ~
        if (ret)
& K7 u7 [4 _) u- M+ o/ g' j                pr_warning("Could not register som GPIO expander LEDS");) m6 X  T2 P9 i, z! d7 U. H4 O
        else2 \3 e$ b: k. ?- e( ]
                printk(KERN_INFO "LED register sucessful!\n");! L4 r; q& R$ t- i% x5 k

9 t, Z" l% y7 K* C! Y, E        return ret;
9 _3 I( N( N" m}
* m& E$ p( X+ F8 m* g3 h" Z( [2 h; W7 [0 B! r& H) Y5 P
static void __exit led_platform_exit(void)4 ~7 m' e0 y  y+ o- ^3 t
{
% E% e# y' S- L6 J* z" \        platform_device_unregister(&da850_evm_tl_leds_device);, D! F/ c' c% H
0 d9 M1 v  J) \1 o2 e
        printk(KERN_INFO "LED unregister!\n");; ]+ L; ^) q# c' I0 V
}
1 y' Z& ]6 G  G- F! @' k7 X
1 F1 V. Q' E) }: S# E; m3 g9 m( |module_init(led_platform_init);
+ O' e) {3 `8 I$ ~module_exit(led_platform_exit);6 [, U  L1 @% b
; s+ G0 J! A9 l! Q- f/ P
MODULE_DESCRIPTION("Led platform driver");
& [5 ?) f4 d# k3 |MODULE_AUTHOR("Tronlong");
% ~0 p0 T) W+ d% R1 TMODULE_LICENSE("GPL");
5 B: `% P* h: _: W/ x- T  ?0 s/ s3 P1 y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-20 08:41 , Processed in 0.040116 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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