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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 [; d  T5 v0 E1 g
#include <linux/init.h>
% [) ~( d7 q5 ?( l6 e#include <linux/module.h>0 l6 y) {! o) u7 h* q- h
#include <linux/kernel.h>
( Y. u! E" d6 _# f" e5 h1 h#include <linux/types.h>
  p, L( `" `# x( Z) T- ^; n+ L( C#include <linux/gpio.h>
1 b8 R5 P. x: v, p6 R* j: Z#include <linux/leds.h>
" o! T- U* G6 O3 {, O; R#include <linux/platform_device.h>
0 ]* h$ X6 U2 N1 J) t0 ^# Q5 z$ L; f# E8 D. c% J+ Z" W' c
#include <asm/mach-types.h>. i6 r& ^( f! d6 [8 W% P9 v+ X7 z
#include <asm/mach/arch.h>" k# o# a% P. a% j" g
#include <mach/da8xx.h>
0 ]4 o+ P7 x0 I! o' O2 }9 v#include <mach/mux.h>* R- J  M3 `" v- Z2 ]7 S, e6 w$ n6 _! Y( L

- R# n9 i; o  \#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' u' j. n2 G/ G
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" V- @* L& Q8 F3 R
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ E  d+ m0 p0 p3 ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% y+ Q5 @6 E2 q& M! m8 L0 R
# W7 r) Y" G+ ?  h; Q' P/* assign the tl som board LED-GPIOs*/
; C# }  G" B1 _# |static const short da850_evm_tl_user_led_pins[] = {
7 M9 i: x; F6 I. J7 s# R  X& Q& Y+ e: x        /* These pins are definition at <mach/mux.h> file */- A  S3 C1 \" c  x6 ~
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ y* t: ?4 b! y& `* D6 O& Y
        -1
: X" C# g8 e2 }: [};
$ ]; c) r+ V. r) e: W( @% O: F( d3 b6 \9 o
static struct gpio_led da850_evm_tl_leds[] = {
# l  }8 {3 r2 x0 f        {( C# U7 x; {+ H: N
                .active_low = 0,% J% s& }2 f0 v' K
                .gpio = DA850_USER_LED0,( Y3 i; r# Z+ u1 a2 e$ @
                .name = "user_led0",
! n. M3 p* t+ e$ @" V/ b  b                .default_trigger = "default-on"," e0 j' o6 e& \( u7 a+ j
        },
$ q( g1 I, M- d2 j- j        {
: E4 W3 M0 J9 `+ A) g                .active_low = 0,  Q# f. Q6 x/ j- x
                .gpio = DA850_USER_LED1,
1 e. r/ d1 J  {+ ]- S+ C                .name = "user_led1",; g! ]4 b5 ]( W! A3 i7 [: g
                .default_trigger = "default-on",+ |  h0 o' E$ ?- t1 q
        },
' C% V. u+ x- h        {$ y! H* ]0 G* s; e
                .active_low = 0,1 V+ L  G4 |3 ~# ~5 I8 m
                .gpio = DA850_USER_LED2,' T" L8 q* Y; A4 b0 L
                .name = "user_led2",
5 \2 X* Q: J( G: A, y3 n                .default_trigger = "default-on",) Y2 e0 h, H; }" W! L
        },
8 @5 d% V. T; F! l4 i& @        {
* ?4 ]( L" [, Q- L$ j8 U                .active_low = 0,
, \5 @) t+ o. |( |# E                .gpio = DA850_USER_LED3,
, m8 g9 [9 A# K# H" S$ H. H                .name = "user_led3",
5 r" ]. o4 q- d: z7 z& k                .default_trigger = "default-on",% ?# b5 m: A" F
        },
$ B* Q5 Q' T7 J. e( _* U: L};
; E. c  g. x* M0 ?
$ |  h, j; L- d, y2 |8 x4 Vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& E  b; a: N$ \9 B* P* N0 r        .leds = da850_evm_tl_leds,5 m8 v/ y; {- Z. z0 ~( ~9 J$ v
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 X$ C0 r& {8 b  E- A0 J1 ]/ \1 l+ }};
' ~9 E+ p1 z- ?) _; J6 M
. {% z. {+ _$ M$ a/ k' \8 n8 mstatic void led_dev_release(struct device *dev)
" G. F6 q, @: K7 P. d' U{9 y  h# \! V  J& `7 Y0 K
};
1 @2 P7 k6 C  Z" p5 c0 \/ ~9 B$ Q; a  T$ {+ H8 A+ p' f- M% @0 C
static struct platform_device da850_evm_tl_leds_device = {
  B: o( F, \; x( D2 k        .name                = "leds-gpio",
# X, P, p; H3 I        .id                = 1,
# Q1 {& @8 J( W, N3 h' @, `        .dev = {0 j* d4 \1 i: I2 l3 P  ], J% W
                .platform_data = &da850_evm_tl_leds_pdata,
& f) I0 H! w+ y9 Q# F* b0 X                .release = led_dev_release,
, N/ P8 C, @. X% K' H3 i        }
8 ~. P8 B4 G1 k};
2 u2 J! Z! x& c
0 {* j6 {( a/ nstatic int __init led_platform_init(void)( a$ M  ?1 q" U" w0 n# x; z
{$ a" Y% ?0 Y; K- H
        int ret;
. \# _" w* h2 |. Z9 k#if 05 ~. i, G! J# T2 C6 ^9 @: R% U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& y. P" `' w; X" v3 z3 o5 @
        if (ret)' ~7 S5 R7 f$ v
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") Y; P$ T# d2 C
                                "%d\n", ret);
: q. Y! C& H1 ~. v#endif& z: e# g2 x9 e
        ret = platform_device_register(&da850_evm_tl_leds_device);1 i/ t2 }3 ?2 r4 {7 j) v( D  x, ^
        if (ret); I: w3 q( E9 V# X) P$ {
                pr_warning("Could not register som GPIO expander LEDS");
  j- C% ~' \+ D        else' q9 U5 j4 ~( l8 U& C1 A& _/ h' R
                printk(KERN_INFO "LED register sucessful!\n");* M+ _4 L7 ^/ O. g2 L8 O; Z! d
; u& f# t5 h) b% ^
        return ret;
4 i( s1 \/ L' [( [}
& T5 C: I6 r; V" |  B) B
. _- d; D& C& H1 N* S# {* [" w6 Pstatic void __exit led_platform_exit(void)
7 g  Q9 [/ J% {9 A* A{2 m3 b2 n, F. }9 U( C
        platform_device_unregister(&da850_evm_tl_leds_device);" Q4 F7 q0 x% ?( }2 {% N8 a  J& D/ h
6 K' q+ @; d* b9 E% e" [, G
        printk(KERN_INFO "LED unregister!\n");
. z. C. U& F- t1 ^. u7 @5 p6 F}
1 Y6 V3 M7 @, `. J1 w* j$ u- l/ L$ P0 x+ C3 |  ?) m  x8 ^
module_init(led_platform_init);
; t# @8 N6 e% ?8 }7 ?& y# x1 O8 _0 umodule_exit(led_platform_exit);
+ c8 G' ?( e/ X( _7 S- R3 u' ~  a5 \8 Z3 I, x0 ^& ?4 V
MODULE_DESCRIPTION("Led platform driver");
" g# m! H8 M7 o: u! \1 }MODULE_AUTHOR("Tronlong");$ S* |4 I. ~4 I
MODULE_LICENSE("GPL");  A4 D- U% G2 U% Y0 e7 j, D

( d8 R- A4 }! ]* Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-17 18:47 , Processed in 0.042824 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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