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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& @2 l$ m4 _' a4 Q8 D6 W( P: G* M
#include <linux/init.h>" F$ J0 X$ ~: e2 d: i& H
#include <linux/module.h>! }) k! K$ q/ p& s
#include <linux/kernel.h>
! y- |7 n" _5 K#include <linux/types.h>
) F) [" M2 g7 T# h8 j#include <linux/gpio.h>; H  c* E2 |, K/ f6 r0 u
#include <linux/leds.h>
2 }9 f5 E7 C* @- v3 }% B: U8 F# b#include <linux/platform_device.h>9 V" T7 f! n4 ]/ [" l: j, X& c
: f& Y9 Q5 c( ~# i# H/ y8 z
#include <asm/mach-types.h>
- b6 g! B+ y% Q5 T- o( ^7 N#include <asm/mach/arch.h>
/ p! y* a. T" ?9 g. c#include <mach/da8xx.h>5 T- n" F2 a$ F" ~" a
#include <mach/mux.h>
) q  a6 O: W5 F& ]* k. G
: }; v- Y$ M- C) P! a0 P#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 R: g4 M. ~" A! K# g- a, v3 Z9 P+ O#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 g' L* [# i& X0 C3 C) A
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 w7 u. _: S' s7 j1 c
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 h$ j- S$ t4 w( o1 ?6 v& |/ g
  L4 U, o) w- n
/* assign the tl som board LED-GPIOs*/) H4 j9 L2 t1 J0 F3 @; {1 ^
static const short da850_evm_tl_user_led_pins[] = {
1 ]4 U" H. C. |        /* These pins are definition at <mach/mux.h> file */. m7 R/ d4 q1 B( N( G
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 B  u+ f0 S% @  V$ `6 y9 F! Q
        -1
: I  V1 a; B8 P5 e0 C, v& z};
; l% j$ H: ?2 d
' o/ O4 J, V8 v8 Y% i" X  gstatic struct gpio_led da850_evm_tl_leds[] = {' W- V( o9 M6 l' t; ]! R# a$ _% D
        {5 j5 L5 V/ Q1 B+ U1 `) y* L
                .active_low = 0,# y2 B( c  j1 M+ e' A. ^* Q3 X" L3 R
                .gpio = DA850_USER_LED0,
, }; w2 d4 ^- N5 K                .name = "user_led0",' g# h) n; c, C; O
                .default_trigger = "default-on",1 e) u7 A+ z2 D% I9 \' A+ X! s% I# x
        },
8 M1 y: ^2 r( h, Y* g        {
- l  k- A7 ^  x4 I                .active_low = 0,/ d/ s0 }, l. E* X$ a( ~( p
                .gpio = DA850_USER_LED1,
. E3 T8 Z4 c: ^) S                .name = "user_led1",
& r; r6 O" H* y5 U* ?9 Q                .default_trigger = "default-on",
. Z# B. [: s  x: V7 X5 E; p" V        },3 T% [9 L8 U; z5 P
        {
: O: w5 _/ \5 q! {                .active_low = 0,
- A3 F  T3 i, V  Y                .gpio = DA850_USER_LED2,4 D( [& N* O. Z" A
                .name = "user_led2",
+ u% n5 N/ h/ Z: ]                .default_trigger = "default-on",9 w7 d" P/ E; k8 w5 G, V
        },
) S. g0 z% o' `& N        {+ c4 i8 _' b4 h1 \" T- H/ X
                .active_low = 0,$ z8 n+ x) N( x) f' ^2 b
                .gpio = DA850_USER_LED3,
5 |8 Z1 l5 t7 x1 @2 n                .name = "user_led3",- G8 n9 v3 S. C6 ]) V
                .default_trigger = "default-on",
9 U9 n0 _8 d( U3 O: D  s+ S        },
; o* b7 J. m. `* L};% x: f& `0 X1 K2 K7 S
8 q5 a, [* a4 b
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ W) k0 \0 Y! W) {. D( X7 _! S4 a6 P        .leds = da850_evm_tl_leds,) f" Z8 u0 k/ L" H5 p0 c
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," a* W1 \9 j; b# D- w
};
. m5 z! Z8 I8 S1 P) d
% q. u5 ^9 Z+ \$ L3 hstatic void led_dev_release(struct device *dev)& }. j" r. j6 l; y) L
{
# P& S6 B- a- _" j* P& A- ]};0 ?- y4 M! b5 V( K

3 L: O2 v; ~0 X0 O: }" Cstatic struct platform_device da850_evm_tl_leds_device = {
: P' e! I3 A! x" ^2 S  u: N2 \        .name                = "leds-gpio",% D0 r$ s2 x6 x& @! @& K
        .id                = 1,
  Q4 n$ }( R1 V4 Z. n8 y% W        .dev = {
6 J% b$ E0 @# d: ^0 V                .platform_data = &da850_evm_tl_leds_pdata,+ d) q2 I: T9 O7 s- |: I5 u- }, Q
                .release = led_dev_release,4 l; _$ U0 R) k& `% t! u. y8 G
        }/ [, d+ m. p# X; Y* ~4 X# Z
};8 X) ]( W# ~( e$ t# u. U+ t
3 I: B  Y4 P1 k7 O- ?1 m( n+ o9 t9 ^
static int __init led_platform_init(void)
; w: }$ v- X& E$ o0 b{
1 H- m# p" [6 _/ o        int ret;5 T: X, _9 [$ ?* K" k9 O5 Q
#if 0. G& i" ^- W+ d4 s) C# ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* ?" ]9 [; j. X; r' K0 D        if (ret)6 F! \# \! \( v+ Y; t
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ f1 a1 C% V" ?( C4 G1 G' L
                                "%d\n", ret);
  r: T/ I% x3 H& B) g( v, f#endif2 ]& }, j( `5 ?9 c
        ret = platform_device_register(&da850_evm_tl_leds_device);
/ R9 s, V$ d$ I        if (ret)
7 P! `% C/ {- v4 E0 q6 m; j                pr_warning("Could not register som GPIO expander LEDS");) Z( t- g0 I5 I. B' c! t- Y/ f
        else
7 @9 e1 [, D& R- @                printk(KERN_INFO "LED register sucessful!\n");
; U3 r3 Y4 Q3 W
+ E4 K0 r. K( H2 w6 F        return ret;1 Y7 W; @( d9 U% A5 I  s# W
}0 p) H3 D: q5 W$ I' K" p( k9 m

- h4 R1 z# S1 f$ \static void __exit led_platform_exit(void)
! m1 |' {& i0 a6 e{
- n' \# H: p5 O9 m/ \( s        platform_device_unregister(&da850_evm_tl_leds_device);- c1 f& D! O/ x9 {5 l1 I6 H

; I2 y: K5 q: K        printk(KERN_INFO "LED unregister!\n");* ~* N' q7 e* ~0 z* s: ?
}: L. o2 @3 O$ W; T' Z+ E. e$ o

/ V: j8 ]4 j% `2 z4 c! Jmodule_init(led_platform_init);: g' c$ t5 ?, F
module_exit(led_platform_exit);
' {- g) _3 h- j/ F' {
! z9 [6 R& F. z2 [# R/ @MODULE_DESCRIPTION("Led platform driver");
; H$ J4 w5 E' m6 w# p9 c$ E" bMODULE_AUTHOR("Tronlong");$ J1 c9 r$ b+ C) m
MODULE_LICENSE("GPL");% }; ^1 W* P& G, b* B# U$ i, }7 x
$ v% y+ U* D6 h! P* |& C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-3 04:35 , Processed in 0.038940 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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