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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; y& w$ c( g8 Y
#include <linux/init.h>
1 C4 a  X- D6 h7 `#include <linux/module.h>
6 m3 T/ _$ k. T2 \4 O$ P2 ^#include <linux/kernel.h>
1 i0 t+ z1 t1 c: f& R#include <linux/types.h>
/ ^( R3 T# J! m#include <linux/gpio.h>
( f; v( O5 M: j+ ]5 k#include <linux/leds.h>+ N7 V! |8 x3 K0 Y
#include <linux/platform_device.h>. R, @# e6 b; `6 i7 d9 x  T
' `+ a% k3 V) q& G
#include <asm/mach-types.h>
  I. `- F& M4 B& f#include <asm/mach/arch.h>' [6 h* T) X) _, L! C7 `
#include <mach/da8xx.h>9 z5 w9 R9 j* k8 M. J. X: X! r
#include <mach/mux.h>
8 \* v0 s4 C* l$ ]* A% g( L9 v( d; e* \9 H9 z# h
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% F( ]6 q" p; A8 \8 W: L/ L; D$ y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% a& J9 @) h; C8 w& O& }7 v#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 ?. e* ?- R2 b4 |1 s/ |1 X#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ G1 [; d/ I. f6 p! ]
7 `: ~& N' L& U, p& n
/* assign the tl som board LED-GPIOs*/, r& d( c. e' C; V+ ?# c
static const short da850_evm_tl_user_led_pins[] = {" P# y& f' s; Y
        /* These pins are definition at <mach/mux.h> file */
7 z2 ]* b' [: C  U$ F        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," v$ ~! q# ^) g
        -1
' f) a+ }0 K7 m9 Y4 U/ U# s};/ o( v) a! K! `4 t6 R

3 B$ S* U; `7 |) T) j0 C" O8 D! Ostatic struct gpio_led da850_evm_tl_leds[] = {$ b# ]: s) @2 v0 ]
        {
9 I7 K6 b8 K# C9 x                .active_low = 0,+ }& H* ?' Z& z4 y. Y( @
                .gpio = DA850_USER_LED0,' I1 F9 w* s3 Q% n5 @" Y
                .name = "user_led0",
5 e9 K# C% w4 I/ t+ I% ]; d& j                .default_trigger = "default-on",+ O, H8 a  `; x7 W8 n9 N8 A
        },' M4 c' ^$ x* e, F
        {
: u( ?- J; V; @! X: g+ w                .active_low = 0,- I" R* h: g: G" p6 F% ^! f+ _
                .gpio = DA850_USER_LED1,; f- c3 o0 M/ D" P3 t, E, t' c
                .name = "user_led1",
5 }; f3 {, @) _                .default_trigger = "default-on",
0 Q& d* B) S# g9 l* s8 w        },5 f1 |+ z/ ]& v; X0 @  `$ u5 E6 B
        {0 F( w8 ?+ A6 ?# c
                .active_low = 0,9 l& {. }- Y" E& l" L
                .gpio = DA850_USER_LED2,- i3 f5 G9 _9 _, [1 i. N- \
                .name = "user_led2",
( p& k% N2 ^& u7 L; W% p                .default_trigger = "default-on",
% N( e1 s- j7 ^& d4 j; |1 f$ }        },) R0 q" M& @, ~" L' i, `  |
        {
# U! y6 }8 [% `3 f9 r  `                .active_low = 0,
( G: U2 X( I$ c( a  u                .gpio = DA850_USER_LED3,4 {2 B- Q0 t( _) \' G, w4 E$ f
                .name = "user_led3",' D4 B5 k) n1 v! z9 H
                .default_trigger = "default-on",( }# K' p9 A: b, t( a! w
        },2 t7 c3 Q1 n$ n
};' c1 B2 P+ m  \2 N. c$ K2 D

7 t0 _- ^( x$ W+ S7 m7 O: `3 istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; b; Z- I; n  ?( }! Q2 D        .leds = da850_evm_tl_leds,& z8 @  o  C8 T5 r7 R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; K- L+ l* M  @. c};2 Y1 O, m& |# ?' t* s
* t$ W/ n- }, ]4 r! a
static void led_dev_release(struct device *dev)5 M9 y3 v; @0 d3 }6 A
{* {4 j" [; L1 j& X2 b
};
$ S8 _$ H! z8 l( k0 y% U( p: w' G
4 r! f# T# E5 L, u! Rstatic struct platform_device da850_evm_tl_leds_device = {
2 |7 \7 ?7 n" S& u6 k  P7 F        .name                = "leds-gpio",
. C( q6 c5 `( t: K        .id                = 1,. Q7 I, e3 m9 D6 ^% |
        .dev = {- R0 ^% N2 J) Z& L
                .platform_data = &da850_evm_tl_leds_pdata,# B# F8 ]! m! i+ |  R5 C
                .release = led_dev_release,5 Q9 ?1 m% Z. o! ~
        }9 Q6 `1 Q" r, D1 L
};
% A' l' ?) |( b& |: W: N+ ?8 B$ e$ ~' a
static int __init led_platform_init(void)
( p% q$ r7 |2 c" D% T1 Q{9 b; P# |) D2 Y. o+ ]
        int ret;% f) S& ^1 u: N0 h% O- D" f
#if 0
- ^5 h$ j8 d4 k* h, j. B. L        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' Q/ M2 S/ i3 t3 ~! }
        if (ret)
) M5 b" m0 Y* T5 |- m                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 X9 s. U+ d) J& C' j; y6 m7 y0 w                                "%d\n", ret);
  C. S( w' S. y/ v& ^#endif
3 g8 @- Y" z/ d. \9 L5 T        ret = platform_device_register(&da850_evm_tl_leds_device);
, ?8 A9 ~7 W6 u. `3 r  w        if (ret)
" I/ r- O6 U, a7 K4 F( t* ^' w7 P                pr_warning("Could not register som GPIO expander LEDS");
7 B. p0 C0 X% s$ U7 ]6 U- ], J        else
! K9 ]; o+ e, [. c+ z- n                printk(KERN_INFO "LED register sucessful!\n");
% L: B+ _. t  B+ U9 ^9 U3 }& W- K& K' R
        return ret;
+ p: O. U; L+ @! ~) k}
7 v  y  y( f# T" @: T5 D
9 g5 B" G5 Z7 p* _0 ?static void __exit led_platform_exit(void)
  T, P, _1 g+ Y8 Z$ `5 V1 L{
: G* n9 g6 N) i  w3 [        platform_device_unregister(&da850_evm_tl_leds_device);
" u7 H' [5 J* n2 P* J; l' x
/ X  ~  C7 @/ e% l# _5 F        printk(KERN_INFO "LED unregister!\n");
: ]2 d, W% c! \# T4 W, y}
+ `- F/ _8 ?% ~' L3 F
/ s4 k3 u2 P$ t& I& v# [+ U* A: Rmodule_init(led_platform_init);: `4 r3 e9 h- v0 h, A
module_exit(led_platform_exit);
9 Z2 K1 v' ~4 a/ o& A9 k" e1 R0 T& q5 |. u+ e; O4 W( _( P) X8 B
MODULE_DESCRIPTION("Led platform driver");; A" d* H, ^/ {
MODULE_AUTHOR("Tronlong");& v1 @& p' Y7 c
MODULE_LICENSE("GPL");3 @0 i3 F1 ~/ b! H

  N9 d8 A6 d3 p9 |: V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-24 05:34 , Processed in 0.039698 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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