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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ |* |; d2 Y( F! Z
#include <linux/init.h>1 ?3 [$ J2 A; Y; M' w5 E
#include <linux/module.h>
9 B, |6 p) w5 T; F7 n#include <linux/kernel.h>
% @9 O5 ^  e7 B6 \#include <linux/types.h>* Q, [2 F0 L0 w+ }) U" M% F
#include <linux/gpio.h>
. B( W- k! ^8 u0 l#include <linux/leds.h>0 X7 T, `( r# f, r2 W. m
#include <linux/platform_device.h>& `4 y, ^% s3 D& E

3 ^# h$ u  V/ g! U8 I#include <asm/mach-types.h>
, F2 X& F: r# m8 n/ ^, @% S#include <asm/mach/arch.h>  f" H# V7 i+ @
#include <mach/da8xx.h># B; _1 S) Z1 b  a5 s8 w
#include <mach/mux.h>- P; J& n! p( R) A
8 l5 X* ~; l6 c; M
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 n9 g- Z6 N, \6 F( \2 f' l
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. G0 e, E7 u. ~2 v- v* k3 h5 }& b- R, s#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 j6 `( k& x& v/ b
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! Q4 u( v. O) A/ _
0 V  D/ C. Q2 Y( C! v* |" g' z/* assign the tl som board LED-GPIOs*/
8 ~- @1 p/ {5 q: j$ A3 _, Qstatic const short da850_evm_tl_user_led_pins[] = {
" Z7 Z5 [1 m$ N4 ?" z7 G: u0 o        /* These pins are definition at <mach/mux.h> file */
6 e' J" ?  {8 V. s        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* k" B: P# _2 v  ]
        -1
% L" Z9 v/ P2 B+ p! \};
& ^' e4 n% I1 I" @. d
! j6 Z- {. @1 ?, `static struct gpio_led da850_evm_tl_leds[] = {
) x( v8 k, M6 j) G& \. }        {
: n7 t7 [) C: j                .active_low = 0,
3 S6 {5 H* W  @- S1 R. M( [1 Z5 I                .gpio = DA850_USER_LED0,0 D* z: G/ N  q8 h, }9 B
                .name = "user_led0",/ B, c" G( @- ~: v1 g( Y
                .default_trigger = "default-on",
8 k4 y# f" E; t" i6 h. P; y0 T        },, Z% V6 o4 x! O& b0 a
        {3 s$ N/ G; `: a" C
                .active_low = 0,( H; y. }% J# w8 \0 |( D
                .gpio = DA850_USER_LED1," }/ o% a; m+ K
                .name = "user_led1",
% }+ U2 [( v- W9 [6 ?7 o                .default_trigger = "default-on",
+ K+ V/ V4 o( H) s+ G! A. p        },# S! Q8 j  X* L# N9 _
        {
' I5 k3 P. t; T2 E8 A$ @/ E$ N: l2 i2 a                .active_low = 0,* K& _; n4 L8 d8 ~9 V
                .gpio = DA850_USER_LED2,
) F2 P; K( @: c: ^                .name = "user_led2",7 f' R" V7 R9 ^( _
                .default_trigger = "default-on",7 U- I6 b( g# e3 R* V
        },1 a% J! g$ f, N# K7 _
        {4 u; i5 F1 L2 [, o
                .active_low = 0,
' ^+ q! r. d% b+ A5 S" y                .gpio = DA850_USER_LED3,1 j" g. {8 i4 k1 h
                .name = "user_led3",
# ]# F! t# m0 I  ?/ M3 W                .default_trigger = "default-on",
3 n, \( ]! \* Q# |        }," I5 L% q9 F/ x! k
};4 B4 [0 J/ {8 I$ I, Z$ V6 P6 j
! t. I* j5 q9 _% q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* ]! d2 Z8 {8 A: w        .leds = da850_evm_tl_leds,- i5 X8 A& y) k' f" J- v% k
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 B, P  T. V; a};
; E# ~) S; I) i" F' X; t8 J+ _1 a2 I: S2 I$ l% h
static void led_dev_release(struct device *dev)9 m% p% J, j& m+ L
{
$ O% I: T% G2 H; q! ~2 ^2 q};
' G2 u- c  Q" x% }0 y$ x) v: ^5 _) p7 [
static struct platform_device da850_evm_tl_leds_device = {
* [% P0 z+ s) Z. c" P. a        .name                = "leds-gpio",' L- m( C4 A& _) M; Q
        .id                = 1,
; T4 X0 J0 \: D+ u) d3 @        .dev = {
0 M  G* S% |# D                .platform_data = &da850_evm_tl_leds_pdata,7 E+ o- l( T" z& P0 u; U' T; S7 F
                .release = led_dev_release,
3 s/ [* U! S2 Q9 @3 i        }
# `3 v# d3 `3 q6 X};+ X% {) w& I( |5 F  y; @* B

* H+ q: m& `6 S2 H6 i8 J0 Wstatic int __init led_platform_init(void)
  d& l" B0 U/ c* j5 \6 a2 G{( h% |$ T  }- T- C, B" _2 v
        int ret;
0 J' i7 ?0 [, I  a" T! V#if 0% y  _5 c& F' T# Z1 H
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 O" n. H8 P( j/ a        if (ret)
5 U4 U! W0 J- _; Z6 p% W5 Q4 U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ j1 U. {4 t7 z: f( D4 A
                                "%d\n", ret);5 `4 z  M# G8 |% b$ I+ g9 f
#endif- O. C1 p' ]: j' b# N; o5 r
        ret = platform_device_register(&da850_evm_tl_leds_device);
; q# J/ Q9 H0 b6 I5 i        if (ret)' f, }; E6 o9 h
                pr_warning("Could not register som GPIO expander LEDS");* d7 U# v1 y1 Y1 \- x+ b3 g* h6 I
        else- c5 R/ j; `5 ^$ w
                printk(KERN_INFO "LED register sucessful!\n");# z7 n/ X3 ^0 R- {" v4 a% H
& i3 T$ p9 x, ?' m$ W
        return ret;
9 e) {! c- m6 i. J! Z}7 L7 Q+ k7 g1 ?) G
1 S- o( W. a3 r, Q- H" t& R
static void __exit led_platform_exit(void)& {3 Z" {  o5 J' I
{6 F- V& @  W+ R8 c% ]+ H5 [" u
        platform_device_unregister(&da850_evm_tl_leds_device);
" b" O) |, g0 E& {/ Z/ f
: R) h  o2 [4 P0 D  A- e$ Z5 Y0 v* p        printk(KERN_INFO "LED unregister!\n");
; w/ j# L1 f, M% N5 c}
/ l& n' O3 A- {$ I/ E( H" Z2 w5 L4 a  F
module_init(led_platform_init);- P6 X+ l8 v8 ?2 {, p
module_exit(led_platform_exit);
1 q( r! V2 R3 L3 ]6 ?) @6 e+ q$ p8 A1 Y! _" s% d% o
MODULE_DESCRIPTION("Led platform driver");
' Q$ A8 W9 J2 @- z: [, E# h2 Z6 x, DMODULE_AUTHOR("Tronlong");0 u) [: I9 M$ j
MODULE_LICENSE("GPL");
& c, Q# y3 I9 L: v8 U# Y, Q+ n+ I9 f1 v% I7 m! ^: M' X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 15:42 , Processed in 0.040566 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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