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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ n$ v0 e! y. ~, O3 J+ f
#include <linux/init.h>
1 h% K  m  V! P, f, I3 s7 v#include <linux/module.h>
# Y# p5 k+ U' \% F8 G0 S. r#include <linux/kernel.h>
* G, ]0 W0 L7 H2 L' o" b0 N#include <linux/types.h># R/ \0 a1 X# j" T
#include <linux/gpio.h>
6 U( n. R. E( Z; N#include <linux/leds.h>
* ]) [: Z) Q' o' v. k1 e4 Q#include <linux/platform_device.h>
1 R2 d  G: O. a6 m2 a# Z) c% {) _2 n4 M
. a5 u% P, {2 P  p+ Y7 b! w#include <asm/mach-types.h>: H: E+ d* s; i
#include <asm/mach/arch.h>" A3 N1 `. @. h( B, M
#include <mach/da8xx.h>
' A+ e, e' ?  J- ?0 T#include <mach/mux.h>
: g6 o6 \# T  h, J- r3 W( R1 i4 Q: [* Z" n" S0 E+ A
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 \5 f# E/ ^" M- D7 ~5 M#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) p* ?8 }" F: X, \+ x
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 l' a/ J6 Z5 C" \- u3 U5 N& z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 j) D9 n' j' b) f6 P8 |7 P
  X# b/ k! ]* }$ c3 s1 T/* assign the tl som board LED-GPIOs*/
* b$ @$ @% x# n, |3 |; Z0 wstatic const short da850_evm_tl_user_led_pins[] = {. D# k. `8 O6 z
        /* These pins are definition at <mach/mux.h> file */% b6 h  I2 z. t8 S
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ X& J& j$ ^: A6 @4 Y
        -13 G4 x0 \) [. ~5 X8 P6 y- c
};( L# l1 {) i6 [& f4 ?1 W

6 I. [. m- O5 T" [2 qstatic struct gpio_led da850_evm_tl_leds[] = {
2 u# B1 t7 J5 ^        {
/ X- }# ~8 Z6 d! d- }                .active_low = 0,  q/ d2 a9 m, Z6 a8 E5 w- W
                .gpio = DA850_USER_LED0,* z: |/ h- z0 v
                .name = "user_led0",
0 \/ T2 h( T! |" P% T                .default_trigger = "default-on",8 c, o) B5 E- `. _9 h- l
        },
3 K$ [1 g% m, }0 m4 W9 g9 E        {
+ X7 T# @# {, R/ T. B$ ]                .active_low = 0,( c2 y2 p8 Q; z( ^: o' r
                .gpio = DA850_USER_LED1,
4 b) I4 S; ~- |' X* n; h                .name = "user_led1",8 V; `. `2 C+ B0 o8 A
                .default_trigger = "default-on",
; k) u0 v7 z/ n. V( I$ m        },. C3 l3 j* W0 _" U1 q7 C6 a
        {
0 }* s5 J' F0 X5 g* y7 P" a/ E. g                .active_low = 0,
  T# o3 h. U# j; d+ ^                .gpio = DA850_USER_LED2,
' ?% P4 A: e$ t0 ^! i& A                .name = "user_led2",
+ a1 s( n' B2 K2 z0 U                .default_trigger = "default-on",) E" r; m; t& c! R9 @$ ^. y
        },  c3 a! O+ D2 d8 e9 ?8 U8 F
        {: B! Y2 E- Q0 y* T! k! q
                .active_low = 0,
- e) k  }& J" ~: D  H' K                .gpio = DA850_USER_LED3,+ d% a5 K, C5 O3 ^: R
                .name = "user_led3",
3 \  z0 w* X$ W. p, F                .default_trigger = "default-on",* Q6 ^7 S6 ~% }( @+ y
        },
+ ^# d# B9 a6 Q) T5 @};' C7 A  G' z5 Z( O7 S% `, ~

5 ?. ~- i' Q( x- `" r) A7 mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 e8 h8 q! p: m3 q8 ^8 `
        .leds = da850_evm_tl_leds,
7 e2 f3 n8 [7 I        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! k  l1 r% ?# X, N0 Z' m
};! s" E7 s3 `' h: f4 f7 B+ [" W
  `" e! i2 V9 y8 X
static void led_dev_release(struct device *dev)
" D  M" |- m- y; |$ g9 A{( ]9 a  }5 d2 H
};
" `1 n6 G' `( I# Q0 k
4 A. K1 K1 p  ?0 _/ w3 Wstatic struct platform_device da850_evm_tl_leds_device = {1 q5 j" x1 @; Q% B8 Z
        .name                = "leds-gpio",' H4 g$ I& b9 o! N/ j7 t
        .id                = 1,
5 p& D: T% Q. O        .dev = {* X) F2 p8 }8 W& H/ Z- j
                .platform_data = &da850_evm_tl_leds_pdata,& g9 y9 K. [; Q4 m" M' C
                .release = led_dev_release,: ?# R! X/ S% ^  W+ `
        }! S2 f0 M4 [6 x; x' e6 R" i; g
};
2 h9 A! ?9 L7 Y5 u" X+ |; N; g; b1 h  ]5 d* I
static int __init led_platform_init(void)
/ s6 y  }# |5 j! B/ X5 U: e- F* x+ Z{" I7 I4 X1 F! Z+ N
        int ret;3 @" O5 ]+ ?. S/ g% x7 f
#if 04 o. _: h9 x# B4 a
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. P: \* `' L1 K% j
        if (ret)7 n7 j& D3 a" Z1 B1 f/ @
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": R7 C* g2 _6 p7 C2 M, n
                                "%d\n", ret);1 z$ L4 Y2 M. H% h; l( X/ l
#endif
6 r% [9 e, I" \7 F4 g* [        ret = platform_device_register(&da850_evm_tl_leds_device);' x$ O5 i3 S( d2 ~! \# L7 y
        if (ret)
. p% w' x! _8 s- ]1 }                pr_warning("Could not register som GPIO expander LEDS");  b% j) e. S: X. J- t
        else7 H# e6 v" I5 ~  Q8 O
                printk(KERN_INFO "LED register sucessful!\n");4 W) a, }: U+ `9 l; _2 C$ r
# z! |- c) i/ H. g, Y
        return ret;
; p0 u; ~! b8 h7 }, }: k}: ^4 W) {, o- H9 ]) i& D2 p

, X0 c- K3 d* P* G* V9 h/ ^/ Tstatic void __exit led_platform_exit(void)
" _, G- d- \( y) M) e0 r{
) H+ j' F! e, c" }) U! ^  X# F        platform_device_unregister(&da850_evm_tl_leds_device);. V  G; s& w& B9 w( g: _
9 S& t- E" ^2 F, u
        printk(KERN_INFO "LED unregister!\n");
2 E* {$ p6 U& n. _}
, N# J6 \$ D& \& {! u7 H
5 d7 w$ @3 V& tmodule_init(led_platform_init);8 _1 B# p8 }  u/ t. w0 l
module_exit(led_platform_exit);" H6 S7 e, f3 |8 y
  `5 F1 k; D" Q9 n. V
MODULE_DESCRIPTION("Led platform driver");
- ^! ]' k% l9 n) F* ZMODULE_AUTHOR("Tronlong");# @4 T( W; W4 `5 l2 W2 V; r
MODULE_LICENSE("GPL");  S$ g' X- I' B' t3 C

0 d) b( `$ F% B- b4 ^. v1 y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-21 20:04 , Processed in 0.053484 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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