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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" C8 P) |; B" n9 e#include <linux/init.h>
4 o8 X) Y8 b: C$ \! W) }% l#include <linux/module.h>6 ?: g" ~1 k3 S& I0 D% C5 v2 `7 F' k7 ^
#include <linux/kernel.h>
# s+ l5 x( e7 D! w0 D) u#include <linux/types.h>
6 g. g) w2 z# w, @7 m" s#include <linux/gpio.h>
. ^! n: C9 e9 g9 c5 \5 \#include <linux/leds.h>, O6 R- s; r& o" C9 z: M
#include <linux/platform_device.h>2 j' c- P  e. c
3 a: M5 h& H' U5 O
#include <asm/mach-types.h># z3 j$ K& s8 S' v
#include <asm/mach/arch.h>
- q+ D2 w' S  {$ h2 U# V4 n; B#include <mach/da8xx.h>
6 ?/ V0 D- h2 R" d#include <mach/mux.h>
1 A% |" T2 e& B9 m0 ^! }
+ [+ c/ B6 l% D* d! h#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 R: R7 m3 L5 I7 [! a#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 B! S9 r4 ?! e: h#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
3 u8 W8 Y) i( N, d; ]#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# F+ i4 r- _6 U) _9 Y; a* f4 a; T1 k% z
/* assign the tl som board LED-GPIOs*/' x6 G3 R' k  L' z( t
static const short da850_evm_tl_user_led_pins[] = {
/ H, ^1 k# L( P$ Q; H0 n  P        /* These pins are definition at <mach/mux.h> file */( g4 q1 B* J- x7 n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 Y6 O! [5 q1 e( ?
        -1# H& W9 F! I  `! m* j, y3 c/ z
};6 s+ n$ B8 p4 `% M0 n. b

& S8 C# b9 B* }0 D5 Bstatic struct gpio_led da850_evm_tl_leds[] = {
3 M3 j- ]! y$ y: ?7 l- Z        {) U( f( e/ P, Z: l
                .active_low = 0,
2 K5 Q2 j5 [& }* D                .gpio = DA850_USER_LED0,
! T( g" e( O: k% U. {& ~                .name = "user_led0",0 B, m7 f0 f' X- q+ ?3 O6 I
                .default_trigger = "default-on",) d- m; X6 Q8 a& V8 {
        },
  X+ y! f0 B  B  A* V1 N        {
# f1 o3 g) L" i: |                .active_low = 0," L8 V* n' z) ]. \
                .gpio = DA850_USER_LED1,
7 _3 j* ]7 a- D2 r& F* h7 S- r                .name = "user_led1",6 q( |* ], E( w; s0 w1 y
                .default_trigger = "default-on",0 ~7 ]! F: A# y' C4 J9 n
        },: S% k6 z: a" m
        {/ D  |$ Z. I1 \  b" s
                .active_low = 0,, ^. L4 {9 }! \1 k  j
                .gpio = DA850_USER_LED2,( k) `0 n8 F3 W; N2 q% Y# i. q, D% ^) ?
                .name = "user_led2",! _6 l9 G3 g; T% F) I
                .default_trigger = "default-on",
5 t. ~) c& [2 O5 ~/ g1 g        }," v- ]& {4 t! h# z2 H8 Y6 A
        {+ c5 R% Z. o5 V) S
                .active_low = 0,
3 m. M5 k; r; [4 l                .gpio = DA850_USER_LED3,$ ^$ n2 h  G+ Y3 p
                .name = "user_led3",
1 m! j; u4 h4 \- X% `1 i  h                .default_trigger = "default-on"," T% v" a. r% @
        },
! a* E: z) ~9 h0 Z: K" J};
$ ?  ^# J. l8 T/ X8 ~
# T4 \( c: j% ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; U/ m& P7 a* D- V0 V$ s4 [- u
        .leds = da850_evm_tl_leds,
- G4 k( Z' t5 i/ \8 `# b0 f        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% Z+ Z  s& G" }, O# j/ J& O/ J! G
};4 k: b$ [0 T, r" z" P' |5 Z) H
, e, A% U. e( Y' r" O& l
static void led_dev_release(struct device *dev)
3 M$ {: p* A; J% S5 \{* P" x* P9 v* o0 `
};
; e6 s4 b3 d) B* N2 a+ x0 i0 r5 C! f( Y8 r+ S; o  N
static struct platform_device da850_evm_tl_leds_device = {
  i3 u* _5 F, F& G0 J        .name                = "leds-gpio",. [; i8 M3 g2 |( O4 D7 J
        .id                = 1,
0 C1 B2 P; a3 V1 B4 E+ f        .dev = {
  Q, l% F$ O( d( y4 D: a0 M6 h* H                .platform_data = &da850_evm_tl_leds_pdata,
! s  T  R0 G/ S' a" l/ Z                .release = led_dev_release,
  y" P% N* i* x8 D6 j% @" ~# o# v        }  r' K4 h0 T3 B, e$ V/ D6 ^8 l: e
};
7 F( e$ T+ A( Y" c8 D
8 b( |- F0 \: i' @static int __init led_platform_init(void)
1 d7 t/ G% e+ a) I' U4 M4 _{
; k( D* s0 V' h        int ret;
6 [6 K" z- q1 A#if 0
8 C- |7 e4 \% Y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. t" Q6 h6 H9 L; \3 p" ~        if (ret)# U* k! J/ x" m$ {6 f6 ?" ?7 K. ]
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- \7 O; Z4 Q" v) ^5 A                                "%d\n", ret);- I( _/ P0 ]2 N2 I. k1 s: j- {
#endif; p( \4 x5 C1 I" O" V( c! Y
        ret = platform_device_register(&da850_evm_tl_leds_device);
* K- w/ R+ V8 o' V        if (ret)6 w6 P! Q( l0 W2 ]4 U/ g
                pr_warning("Could not register som GPIO expander LEDS");; I* p* R: U+ y" {; o, u8 J
        else
7 p8 F  w9 a. }  X9 d0 ~                printk(KERN_INFO "LED register sucessful!\n");
8 Y& u- l# ~% ^7 v: h( A% h2 A) y+ ]
        return ret;  f# m* {& w# A- }
}
& @3 L: i; z' N8 ], Y. B+ }1 Z# s- [0 E! W" i3 u9 [3 t) R
static void __exit led_platform_exit(void)
; o) }- B7 _# K' {( Y# Z! Q{" `/ c7 a& i+ E" s) ^
        platform_device_unregister(&da850_evm_tl_leds_device);
" N3 r- h- w' Q# n) @
. [  o- V! N) ~0 {        printk(KERN_INFO "LED unregister!\n");
5 i9 K& y& d: t  A; {}
2 e$ ^: U& v: i2 b
3 j* Q, q8 E- W8 D: emodule_init(led_platform_init);: [4 B  |+ D( u. Y
module_exit(led_platform_exit);
1 v# r( u9 Z. b2 X0 B& A* g+ U' y& f7 b7 o! `/ u3 p: N
MODULE_DESCRIPTION("Led platform driver");
% j) I7 N/ F! p, P# w! R, SMODULE_AUTHOR("Tronlong");$ j# a  W4 k; a( T/ ~8 b# z/ n3 e  Q
MODULE_LICENSE("GPL");- p% }; b! X  ~) M/ o/ E. f4 p  O

3 |( O5 {8 h9 a- d: r  v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-10 03:58 , Processed in 0.039185 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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