程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! O. E8 A2 w" j' `% |
#include <linux/init.h>1 H+ c2 S( Q5 y0 N' Z; ?! t% t
#include <linux/module.h>9 n6 V( i. N3 Z
#include <linux/kernel.h>
5 d" O9 m' M8 [: n#include <linux/types.h>4 i8 J" G) G( [7 M" f: s
#include <linux/gpio.h>3 B) n, H- i& g! L8 t0 R7 Y% K3 P
#include <linux/leds.h>
+ A4 _  L  ~4 r) ]#include <linux/platform_device.h>
: ~: H; K1 |1 F' }& a& P( `
1 x, h. f! V0 _: P4 P+ s% k#include <asm/mach-types.h>
: W4 t6 ~- }5 p9 O  x, o+ ~* ^; p#include <asm/mach/arch.h>( Y* @( K3 D+ u
#include <mach/da8xx.h>: B9 {! A9 f+ r9 `, S1 F1 f7 F8 R
#include <mach/mux.h>
. i5 R, U8 j9 ^1 Z2 D5 L4 b  d' W
* h7 C4 z+ V! G+ @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 |% ~- S, K. _9 `2 m2 o. L' D#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% d- m0 @5 I) U( ^( Q& {- s
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# M4 u" O8 o8 ^3 I9 u! E% t( E#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% _0 T4 X* g* ~; K& `+ l$ \: @

6 v  j1 l2 l5 Z3 r0 B/* assign the tl som board LED-GPIOs*/# a3 c2 _! B" Y5 T* P* j4 q
static const short da850_evm_tl_user_led_pins[] = {
5 r  J; a' H  U0 E9 a4 a        /* These pins are definition at <mach/mux.h> file */
# g# _6 {" w( Y+ {        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 Q( q5 M& J) K& g0 D6 y: ^        -1
; V0 A7 X& X3 \( _0 ]};
9 C8 M. k2 E& ^9 b
$ Z; ?. J+ u7 \, n  V4 k& lstatic struct gpio_led da850_evm_tl_leds[] = {1 `% s4 }4 y) [; ?  s$ F/ d
        {0 ^& T- z3 m. h( U! G% i
                .active_low = 0,
% T# J* N$ A- Z                .gpio = DA850_USER_LED0,
5 o6 q/ c' @( o$ c8 K' o" B, }; ?                .name = "user_led0",
0 ~3 J5 d: @1 L- [: {% ]                .default_trigger = "default-on",
9 c- `8 m/ k* v" }1 a        },
  E' y9 @1 y! j) z0 T. Q        {
' m) y, J" {2 G$ e1 y- O  |                .active_low = 0,  {. |0 g8 v, I' `$ B* S6 m
                .gpio = DA850_USER_LED1,
6 p3 o6 c! P7 O+ \0 h3 J                .name = "user_led1",- Z/ V2 L. }6 ?  o& I- F
                .default_trigger = "default-on",
. c! q" @3 l4 R1 I4 f7 q" j        },* f3 U8 n# [7 y8 J3 ~  @6 A
        {. j0 J- ]% T( {& ~' Y
                .active_low = 0,
% |: R' [9 g4 |                .gpio = DA850_USER_LED2,0 ~9 n! Q8 `* Y9 ]; X* J
                .name = "user_led2",' m( ]; H) i: {
                .default_trigger = "default-on",
! V- s) W1 h% K7 I. @: ~! v        }," ?& k/ a; ]7 {9 j7 E3 c
        {
" d7 M9 H! K) r5 U) B8 {  n( r. g                .active_low = 0,
+ b# X" S$ A3 i                .gpio = DA850_USER_LED3,* U7 D  X0 }+ Z* W
                .name = "user_led3",, \1 D9 a8 W, g$ [' Q
                .default_trigger = "default-on",- s0 [/ o% i6 _& t5 p6 V# h
        },
0 X; B6 @0 ]& B};! s5 P3 X/ n3 e( ]. v
. }, N" J8 x  X, ]
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ e( v) f, d1 e2 G        .leds = da850_evm_tl_leds,
2 a% N  |3 v& D  J/ w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& k/ t  I+ m* G) _6 Z};+ F1 J& w9 r% e( _! K$ I1 M+ ?; x* ^4 e

- m" [! a  I' V: S  J; dstatic void led_dev_release(struct device *dev)
/ R! V$ q5 _" W, K! z/ f{
7 i* k9 N& E3 _% h0 ~8 t2 [};6 r: L$ o% _: T2 N+ E& i1 y
4 k* w) C4 \; L
static struct platform_device da850_evm_tl_leds_device = {6 R+ u* c, [6 q% o& g6 Z) d
        .name                = "leds-gpio",! a$ P" j/ Z3 B: \- ?5 p" s% j6 m; ~2 U
        .id                = 1,9 z# C" M( [4 n) {
        .dev = {
% A6 K7 J6 K2 [; z                .platform_data = &da850_evm_tl_leds_pdata,1 |  h$ Q  u0 a1 B$ w6 A0 c
                .release = led_dev_release,/ r) h2 `' G; h' |2 f
        }' ]5 q& d9 s9 }' [. r, Z' L
};5 K& s3 b1 B6 r

! p8 x( \: Q1 [+ cstatic int __init led_platform_init(void)9 y! Q" h0 H9 P# n$ j2 d+ F
{
9 d& c- }( L" n& a9 J        int ret;
8 e; n* P* @' D- {' a#if 0. v. h  s) Q7 l6 [: w% t
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ y9 l2 k. ]( v* I8 i
        if (ret)# a% V9 m: P7 V% q$ m! C. {5 P
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- K& @/ N+ a( Y+ z                                "%d\n", ret);
8 C2 A8 Q9 w/ g) f#endif2 f: v# T, f. O/ Y' x) V8 o
        ret = platform_device_register(&da850_evm_tl_leds_device);
1 K) x/ A0 F" S; O: K        if (ret)& `6 R3 t! ~* E8 h& N
                pr_warning("Could not register som GPIO expander LEDS");
6 e9 K( ~" o0 r, {9 t- x, o        else
: D- M9 W1 {$ r' h$ b                printk(KERN_INFO "LED register sucessful!\n");# M0 e% m: k: a; r

0 S" e( `. b+ H6 P9 s; C        return ret;# @# c3 N4 n, a' _" m! S3 J2 r0 {  M
}% q4 p7 u  \; e" @8 j$ D

/ w; ?/ ~) W) Y& Astatic void __exit led_platform_exit(void)1 a- f9 Z* L3 U
{( c+ F7 G8 T$ Y3 E& I. f$ Z& A
        platform_device_unregister(&da850_evm_tl_leds_device);  J5 ]( l# @6 r: ]* P
, v- g/ K  c, r: h5 A, C9 ~/ Q2 k* K
        printk(KERN_INFO "LED unregister!\n");, R3 r, x( f0 F, ^8 r5 X4 S+ P
}2 x. E" Y1 X0 b6 V: n. {
5 `# A+ a6 B) ?
module_init(led_platform_init);4 ?5 V8 E7 r! J$ n. p9 p
module_exit(led_platform_exit);. P' F9 \4 ]. Z. e; B6 ^- N

* V* v: V. S: z3 D1 s$ H4 w, aMODULE_DESCRIPTION("Led platform driver");6 r7 j. p2 D2 f/ G. g4 ^
MODULE_AUTHOR("Tronlong");
! X: o" F3 P7 ]% K* OMODULE_LICENSE("GPL");7 b9 {* |% O$ M. P/ D7 {

  E' ]) f! |( o5 w3 C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-21 01:54 , Processed in 0.043630 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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