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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 b% H5 k5 m( v0 l5 U( T& S
#include <linux/init.h>
1 }# t6 u0 l% }; s* s3 A' u#include <linux/module.h>
8 w: j( C! m0 K" Y5 _8 Z$ D' t#include <linux/kernel.h>
4 A2 y% i9 G4 U& p/ {2 |) M) e$ \# q#include <linux/types.h>$ W# q6 |) R+ y0 S) D4 Z
#include <linux/gpio.h>: o) ^3 O& d' f3 w  I$ m
#include <linux/leds.h>6 w, A: c! F/ H. Y- l" i+ Z6 w
#include <linux/platform_device.h>
+ G. d; K) [0 c- b* e7 N9 b$ Z4 g) k5 b4 p/ W& ^
#include <asm/mach-types.h>
: e# w, y3 t' ^4 A1 y#include <asm/mach/arch.h>  S, ~, X- u  Z* V, A
#include <mach/da8xx.h>9 V) l4 {3 h" I/ G% m5 V/ q
#include <mach/mux.h>
+ s/ U. f- f7 j; N; w- `& Z' b: @% k( g( @0 h, T+ Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); s- s; k$ _+ g: _, [1 I
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ F% p% j4 M9 [2 Y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' y! o2 G0 K# P$ A( S6 x* \#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 N$ k- h- L9 }" h+ l7 K- ^) t- R
5 |* Q* C5 `* C: X+ r  i4 ]  R! x/* assign the tl som board LED-GPIOs*/9 n/ r0 K# w6 ?2 O; v
static const short da850_evm_tl_user_led_pins[] = {
1 Y- n, j3 \$ I" V9 i' X        /* These pins are definition at <mach/mux.h> file */' `5 q2 C6 u% o
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 W) O" y; r" V+ Y0 d        -10 N) b, t' G3 U3 [  t0 W: d  R
};( o3 Y' a9 d! ?- Y4 F! [
- B' v. x$ R* E3 i3 p6 e# s" H9 F3 e1 h
static struct gpio_led da850_evm_tl_leds[] = {3 E7 Z! t) G. K& h: R% P* h
        {
# {' X8 v* J" n7 ^: e& F8 m2 F- g                .active_low = 0,5 F' R7 K. q# J  q
                .gpio = DA850_USER_LED0,
) I" Y& \; d( a8 N6 ~5 v" m                .name = "user_led0",5 r8 {; o4 `' v7 O, P( D$ o
                .default_trigger = "default-on",
& `, w2 F4 U) j9 L6 A& |" F: A0 w) w        },
4 H4 V9 S5 S; _/ p% N$ C* h9 [        {
; i8 }& S$ g$ T2 J                .active_low = 0,% n" t* L, F- v. G. N5 c7 i6 @7 c
                .gpio = DA850_USER_LED1,
! S' b+ ^  J- M                .name = "user_led1",
, h# D1 J5 Q" u# R                .default_trigger = "default-on",/ c' V. J- `% C+ A. N( |8 H/ \
        },  t% o: }$ _; B
        {
2 C* ~& S1 ^3 H, n4 Y* [                .active_low = 0,2 Z2 V' E$ D; G: `
                .gpio = DA850_USER_LED2,5 X$ H$ i- j0 E6 b( M
                .name = "user_led2",2 P: K/ J7 P+ n9 M% p; R) R8 W
                .default_trigger = "default-on",
, T8 n9 K6 n4 H" p  [: Y        },4 h( {7 w1 k7 \. q3 g0 n9 |6 I
        {- }) `& _) @( x4 Y. O/ ?
                .active_low = 0,
% V/ O* M+ m$ K5 s6 H                .gpio = DA850_USER_LED3,6 q& J. n4 j% x8 M9 E7 ^
                .name = "user_led3",; L, s. E" O; w) w! Q) e8 l
                .default_trigger = "default-on",
" Q; o6 t' N, Y& y+ M        },
9 P: n2 U; V- A' e: V, ~};% K, q. X% b5 ^" L+ ]
% c2 U6 ~- y: X! B! Y$ _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 R8 R, r& J" c! ^
        .leds = da850_evm_tl_leds,
& r0 g1 s8 U3 @, P+ E        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; z5 h/ T0 Q& F) V5 w  n2 z1 R};: s* V) h  v: Y# g6 m
# T; Q5 Z' }* R# p1 ?- V; r8 e
static void led_dev_release(struct device *dev)! B/ q8 ?; h. D- I, Y' V
{
2 z7 Z/ W7 G  O9 \0 \- p, O# U};
" q0 H  s+ U4 M. s" G2 h* w  M
' `6 @$ l: S; m) v  Nstatic struct platform_device da850_evm_tl_leds_device = {
/ K# l+ O5 F. g& u5 E% _5 B        .name                = "leds-gpio",+ x  j1 X, T# K" u4 @
        .id                = 1,
+ l1 U  @! g7 ^4 }" O1 s        .dev = {; Y' @0 a7 [0 x- _' S6 J$ y
                .platform_data = &da850_evm_tl_leds_pdata,
5 t8 i+ ~8 {+ C3 O& }                .release = led_dev_release," }9 @. {8 \" d0 R2 U' U! z( ]: \" l
        }
$ c  R! F3 R0 k0 M};
. [4 H+ `5 z1 E
1 d/ _: o7 ^* p6 F7 tstatic int __init led_platform_init(void)
2 p" D: L! K' j{( V+ o( Y7 [# P9 d1 S, M' [
        int ret;8 c) c( u4 _- ^! _
#if 0
  m! D. t# \3 B" d        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 {) D$ x2 g" _5 @- V
        if (ret)
* |7 P1 d: e* w7 v9 y6 f                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 l$ o2 W  d" f9 }
                                "%d\n", ret);
) U% m/ I$ z# {# }. c#endif
6 X! I$ s8 R, [. U% o: D1 f3 Y        ret = platform_device_register(&da850_evm_tl_leds_device);. e/ O! [4 s% e' A
        if (ret)0 F# n9 g" ]4 [0 g  c3 E0 B
                pr_warning("Could not register som GPIO expander LEDS");& I, d3 p: s2 D3 s% X; |
        else
% b. v2 R6 q4 B                printk(KERN_INFO "LED register sucessful!\n");! B1 {$ {3 `0 B. M; b
0 ]/ d/ }; `5 v, w
        return ret;
: V5 K  s& e0 _}; Z, }$ G9 Q2 a. u

3 o6 R6 d1 _# \6 a8 y( dstatic void __exit led_platform_exit(void)
0 @; @- j! t- P; ^{. Q4 h0 T5 P: l0 ~! L
        platform_device_unregister(&da850_evm_tl_leds_device);- c8 d8 n7 Q0 }: X# B6 J
/ ^  C1 \/ X. v1 U
        printk(KERN_INFO "LED unregister!\n");: {: T" S0 s7 l* h( `; m6 B
}  H1 q$ ~' `9 Q  b  Y, D

; |4 x' I+ X: v( x0 wmodule_init(led_platform_init);1 l# m' q/ K  f2 r0 T/ D
module_exit(led_platform_exit);
+ b6 U0 U- a" _. E9 B2 Z
/ }, b" ~  H: Z4 e4 B/ {/ q$ X+ W. ]MODULE_DESCRIPTION("Led platform driver");. w5 w2 d1 @1 K$ s. x) l
MODULE_AUTHOR("Tronlong");
- F- z: q: x+ Q: RMODULE_LICENSE("GPL");
# |8 |2 E2 p7 |# h: k2 y0 i: f5 b( Z4 S0 Q( F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-25 05:58 , Processed in 0.042039 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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