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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; V3 F' W3 s# ~$ j" I. M#include <linux/init.h>% o5 W5 U$ x% v% o9 K' J) h0 w
#include <linux/module.h>8 l! O. H0 F) l% x  \  R
#include <linux/kernel.h># O: }: ~- {( g* N* ]! c9 w  S" _9 ~, T
#include <linux/types.h>
8 L9 m; V" j* N#include <linux/gpio.h>% ]1 Z7 r9 o# I2 U$ D" k. p6 T1 Z
#include <linux/leds.h>
% r0 g4 m+ }6 Y: K#include <linux/platform_device.h>
9 E( \* X6 l) E( w/ \
8 Q8 N1 y8 K+ ]# t5 q#include <asm/mach-types.h>
/ D- o/ h- }  T# ?5 m#include <asm/mach/arch.h>" J( P1 l5 j, @
#include <mach/da8xx.h>; ~3 ~; W% ^) ^
#include <mach/mux.h>
: r8 ]3 z. _+ ]+ _$ A$ m, E" _  M
: I/ M& v1 T3 c6 a$ d' y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 M4 R4 U% `* v8 I, |# ?
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 f, I6 v9 u9 ~#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
. \; @8 Z+ W. T5 h8 @#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 {3 a8 _2 D' T! g
* T( b; m! n1 |& V, `9 @" s6 p/* assign the tl som board LED-GPIOs*/; q$ g: H. t5 y1 Q7 E; A! w: [- L
static const short da850_evm_tl_user_led_pins[] = {
! ^+ F; N  N9 p) K, o* U6 ~) O        /* These pins are definition at <mach/mux.h> file */
' f6 I: C- K$ t        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: i2 v7 r* ?: G) A        -10 o* c5 `& i1 Q
};  b% L, b" N2 }) \* o

; B! f3 _+ T7 a; v) C; e. {1 kstatic struct gpio_led da850_evm_tl_leds[] = {
' R5 Y5 y' e4 P3 G" G7 W        {) k* H1 ]" v- z' m) j- c; q& `
                .active_low = 0,
/ Q8 P! _1 X4 K                .gpio = DA850_USER_LED0,; t2 L$ _* @' Z  x. a* E8 f
                .name = "user_led0",
4 n; ]& {8 a& m) }0 L                .default_trigger = "default-on",
% {5 E! `7 ]2 k5 y5 q) k9 H2 W# e        },) L2 M' V6 w, [- B% J7 U% i
        {
! J* @$ ~/ ~# R# l                .active_low = 0,9 L6 z' U6 j% i# @. q
                .gpio = DA850_USER_LED1,
% C1 _* A. o+ I# W& x  i: l% I                .name = "user_led1",: [% C: f" i4 r  m
                .default_trigger = "default-on",4 a& u) b/ G; [  H$ h
        },) i( j7 U8 P% h: N% @
        {
1 G3 J$ j% ^' ^0 G0 W7 }& b                .active_low = 0,* |" y4 D7 ~7 B7 C0 ?4 e- A
                .gpio = DA850_USER_LED2,
! Y( \2 Y5 P: u                .name = "user_led2",( Y) W+ U4 f% G* e; I5 i& {
                .default_trigger = "default-on",
  m2 h9 f' X1 ^8 M9 d        },
- ^( E2 A7 e6 i% L6 E! K        {. t" P8 G; q4 i. X+ _
                .active_low = 0,* Z: [$ Q  c6 L
                .gpio = DA850_USER_LED3,
5 y3 x- ^7 h7 a; T! g( e7 I6 Y                .name = "user_led3",
0 ?( _3 s- g4 j: Q                .default_trigger = "default-on",3 G) u, j# U' h& i- k
        },5 m) N- o* P! g
};; @, Z0 v$ I& I. o0 g

, ]7 q# r0 z  l9 |8 b6 k/ `static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 Q$ J# ~7 S: u- l
        .leds = da850_evm_tl_leds,9 J% p! F! v: |& @4 Y9 N% b; g+ P
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ o( k. l0 g! j. i8 S& q: t};
7 n1 X! `! N. x# U# x. y8 e; [: Y, v
static void led_dev_release(struct device *dev)
3 C; }+ [1 H9 J{
* k9 N" h; w  S/ V! [};
1 G, h2 w; X+ v0 P( Z/ I+ C0 e7 s, A7 r
static struct platform_device da850_evm_tl_leds_device = {1 _$ v( w3 y: t3 i' M. r  a1 D
        .name                = "leds-gpio",
1 t* m9 G( K# B, O. C( X& ~        .id                = 1,
; E5 p8 ^( g! L* T        .dev = {5 w) n; g* d, `0 u" x
                .platform_data = &da850_evm_tl_leds_pdata,$ a: }& s( |% J, Y& }' i4 k4 H
                .release = led_dev_release,( o) w) D* @# d  B5 r% m4 K7 ~
        }& M$ f: b$ K; Z  {
};3 I7 }7 O3 M. o1 V9 U; Q

% E0 D6 \2 e6 d, t' d! {static int __init led_platform_init(void)
5 M8 U! s% M0 }( n0 X3 f# z2 c{6 G/ I: ^. b) v. b
        int ret;
4 H2 Z! p9 Z; Y) G- X0 Z5 W#if 02 M5 K# y4 {  M% @
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  A0 J7 M9 G. q1 D  [9 W/ v
        if (ret)
, n7 k( E& V- v5 O# W                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; _5 r: u4 y) E1 C/ X* a  n
                                "%d\n", ret);
, Z$ k+ @9 ^5 O0 d% S#endif
) v" N' z! ~1 T5 m% x        ret = platform_device_register(&da850_evm_tl_leds_device);
' B7 X  n9 d0 P. N        if (ret)2 N! c; K1 [( i  m
                pr_warning("Could not register som GPIO expander LEDS");6 m6 W( A! P! P0 c& f- X& S
        else* Q7 A  D! A# g! y8 ?' e( }
                printk(KERN_INFO "LED register sucessful!\n");; R- {: Y- L* r: W* a$ Y
* x& a& ]' Q$ }4 O& y
        return ret;. @$ v+ k$ p5 I3 l
}* S* }; w) c8 m! }( i  z0 T
6 y' p6 K% p9 q
static void __exit led_platform_exit(void)1 H6 U' _2 u  ?) N; |+ u5 ^
{& m6 E% q4 V! `
        platform_device_unregister(&da850_evm_tl_leds_device);
+ {$ V& q% ]$ w. Z- f
" M" f# b6 G  M, Q/ u0 H" G! r        printk(KERN_INFO "LED unregister!\n");
; Q' X9 e6 f6 {  v# H}) p" q  R* q; B% j1 p- Y6 r

/ T. h% M/ z+ T: q$ E7 cmodule_init(led_platform_init);
& j% `" V# @3 R& Kmodule_exit(led_platform_exit);
$ t6 N& V% i; E
7 ^6 k: S8 H. D! E8 y) d4 S4 x+ xMODULE_DESCRIPTION("Led platform driver");6 V" i$ |& H1 d4 d' L7 Q  p1 C
MODULE_AUTHOR("Tronlong");8 R7 e- w4 u" J; \
MODULE_LICENSE("GPL");
) S0 x- C+ Q4 O" c! B( L  k
! F1 A+ O* c+ m" x. ~, z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-2 09:23 , Processed in 0.045728 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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