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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% v1 |/ z3 Y) Y4 l3 y; W! V. J
#include <linux/init.h>( z% g* g" m6 i* K' K# [3 o$ R
#include <linux/module.h># y  o" n/ j1 U5 t- n1 ^; Q2 Z
#include <linux/kernel.h>
8 e  p8 H! c8 L#include <linux/types.h># R# h; S* f- [1 V1 ~8 B4 B# D3 b
#include <linux/gpio.h>
# p+ K  M- {" _+ o9 S! M( i9 G#include <linux/leds.h>
8 [0 b5 v- p0 ?, y% r( J) E#include <linux/platform_device.h>2 q  r4 o7 ]+ ?7 H

; k/ y3 x  M/ z0 }& v9 o3 {8 @- J#include <asm/mach-types.h>
4 R& ~+ B& n, h  M# m#include <asm/mach/arch.h>
" o6 z9 X6 Z8 _( g& X0 V#include <mach/da8xx.h>4 u' L/ [6 {* B5 P0 I0 O
#include <mach/mux.h>( T6 ]! r2 b" k# k6 a- D
0 U/ _& ~3 _+ i' s( F) @
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) l3 ^+ d' K: c: [- r5 n) W8 E
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 \% a# z/ z" T% T& L$ A#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ F; K. C( g  B9 c2 U. N#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 C) E! n' i! }; U9 b; r$ P, O) ~$ e* b$ }* F% k/ A# _" J
/* assign the tl som board LED-GPIOs*/
/ b4 @0 T) c# Y/ `; Ustatic const short da850_evm_tl_user_led_pins[] = {
% \) B! N- b. l; `        /* These pins are definition at <mach/mux.h> file */0 N# _4 H" j. N" `' i% ~7 C7 d
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. R9 o& l; `7 \7 g5 z        -1
" `, c) E  ~9 u/ K# j9 p};
2 x) d* X6 w6 g/ O* j8 [$ I' J$ V/ B. |$ H
static struct gpio_led da850_evm_tl_leds[] = {
8 Z, {9 x: c. C2 e& \        {8 P1 u" W- ?: M* s6 M
                .active_low = 0,- k. j. V9 F6 I) e# [
                .gpio = DA850_USER_LED0,
7 p# j+ ]9 |7 ]. k                .name = "user_led0",
! \1 A1 V$ o3 h. q$ i" P+ o6 K                .default_trigger = "default-on",
" K) s4 t; N2 [) `7 Y* e        },/ R/ e3 i: _* _
        {
. h4 z6 ^) z7 }+ u# s8 P6 u                .active_low = 0,
* L1 d2 c( L% [; s2 e                .gpio = DA850_USER_LED1,
/ S( V  [+ ^* o, o                .name = "user_led1",
8 n; d& k) r% f                .default_trigger = "default-on",
$ q. P4 K7 x+ u  c+ Z5 ?( ~        },
5 L. t9 M$ M, b* p" y9 l. @( J# a        {8 \+ U" L0 Y6 M1 r
                .active_low = 0,
( m7 s6 F8 H0 b                .gpio = DA850_USER_LED2,# ]0 W3 T5 L1 i( F4 f. F" _
                .name = "user_led2",; y8 H( T  T% j+ [: Q
                .default_trigger = "default-on",
! G9 O& D8 G6 `4 G( C) Y( N        },
, y/ S) H/ m; P        {' k5 u/ H: _) S4 Q( }& x  W! Y
                .active_low = 0,/ n8 E3 h# @: K3 x
                .gpio = DA850_USER_LED3,1 N# {7 d, }, }/ ]) k2 `
                .name = "user_led3",
* x9 X! B" r5 l7 m                .default_trigger = "default-on",/ }% i- i+ J7 J
        },
% r$ W+ R- A+ Z8 [0 z};7 N+ k" z4 A! V7 k2 Q  ]; q  ?7 p
+ a" Y6 e( L, X9 K7 D4 v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 ~% }" F3 f6 G6 Q        .leds = da850_evm_tl_leds," z! f7 z, ~3 ~: O/ z- H1 p  s3 l+ ?
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 m$ s& q2 Q- ~( S/ Y
};
. X( S5 r; S* D" _
4 a5 S' L! T; {( ~$ e" B7 ~  cstatic void led_dev_release(struct device *dev)
% [( p* q% {7 H4 W: e( P  B{
. _) ^) Q: N# S9 a};
% `2 }9 j. y' a1 c
" {' {, _3 l  G8 l, F( i* dstatic struct platform_device da850_evm_tl_leds_device = {
: g3 p! s4 U1 O0 m( @+ A; o        .name                = "leds-gpio",
+ y* m5 o* I. h1 i8 U' ~' `2 Z        .id                = 1,
7 d; z! p6 {) g% [# Q5 O! d3 G        .dev = {
+ L1 @: I  Q3 b6 a/ Y: o, a                .platform_data = &da850_evm_tl_leds_pdata,
6 f  {2 f4 b- w/ y  E                .release = led_dev_release,2 `/ ~0 ], _3 }5 G% K
        }
% m& i. b  l- p. [7 W) v};
8 K" ?5 y* P; C1 @  ?* @* _9 I+ C+ Q( g, J( Z
static int __init led_platform_init(void): m7 Q# W9 |) g# {& A' o, w5 d0 z+ V
{9 {! O4 X$ t4 L. s) I
        int ret;
- \" N9 y; l4 x- m* [#if 0
& W; q* t0 R1 a" D3 [3 @        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 l; O% z! [  V7 t
        if (ret)
- {. {- ?. l/ d9 K! ]                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 P8 Q& o- Z) j* y
                                "%d\n", ret);( i' V: q# P; Z/ {; P
#endif
2 v& o2 D* B3 z6 ~" I2 ]        ret = platform_device_register(&da850_evm_tl_leds_device);
2 o' r) w; I9 e. p        if (ret)
# x5 H+ z0 A  H0 N                pr_warning("Could not register som GPIO expander LEDS");
, g. l$ p, S% n) A: R        else
7 s/ \3 v! j! V3 h                printk(KERN_INFO "LED register sucessful!\n");# W: C4 o# Z" }3 s
0 V0 `( T" k. r5 a# m! _# P
        return ret;  \( {  k! l2 I* E" P
}5 f( N6 D1 T& K9 g! T

8 V/ }6 G* G% }$ sstatic void __exit led_platform_exit(void), \' d2 R; Q1 n! a
{& x9 `, \- N0 F) A4 B* h8 |! V5 b
        platform_device_unregister(&da850_evm_tl_leds_device);
  X+ D, g* n/ X
1 b1 a8 n8 o* K& I; V, z        printk(KERN_INFO "LED unregister!\n");, b5 z2 }8 l( _" s) D
}! n; e" x; D2 S* N6 K4 _7 p

2 A/ n" G% V- G3 t2 e  ?2 ?module_init(led_platform_init);
7 L2 ^* i: n5 E. V, n' {4 m! R, y# o# Wmodule_exit(led_platform_exit);- C; @$ b+ I0 R. P; ?# _

3 n( I7 T+ R! g) tMODULE_DESCRIPTION("Led platform driver");
9 v; U% y. ]6 ]/ ^! k: wMODULE_AUTHOR("Tronlong");
9 ]5 c* E" w0 M# n5 @  [+ _- \4 `: ZMODULE_LICENSE("GPL");% b) P2 g0 }  ~: |+ G2 A
4 p% G6 ~1 P& D- k! ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 23:12 , Processed in 0.038874 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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