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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 e) L: S, t  H  T- L0 z#include <linux/init.h>
. g4 b$ D! X- P0 D, ?/ E! O#include <linux/module.h>
, `* C0 I* s0 }4 e9 {#include <linux/kernel.h>7 p5 A2 t" E0 w- P
#include <linux/types.h>
9 l+ `& @( @8 \# Q' _#include <linux/gpio.h>) ^' M% P+ L# `9 T' v% M
#include <linux/leds.h>! t" B" l1 _. T" v. d& v% I6 T
#include <linux/platform_device.h>
) L- o3 y; d+ j! J# e( K# U% C, I: u2 Z3 l; ^8 l4 G( l
#include <asm/mach-types.h>/ t: T. S8 U* M. L9 [3 o# q
#include <asm/mach/arch.h>6 o/ ~* L8 z4 ?. ^
#include <mach/da8xx.h>
# U) D, y4 R3 h( V( i- E4 W#include <mach/mux.h>3 o9 Z5 W  @# x2 d- M# M4 A
4 P7 u+ X/ Y3 O8 b- ~: p: ]5 r
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 V  l0 Z/ I3 L/ T" I' I
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) Q0 l* w! |" p' l#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! M7 o+ g, D% w; |" C  T, A#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 g9 K6 [& ^4 }6 O8 K" j) M8 z4 t  Y# N) L5 _' _, r$ T  s
/* assign the tl som board LED-GPIOs*/
+ V6 e5 p8 P' K0 O4 F; A% vstatic const short da850_evm_tl_user_led_pins[] = {5 j% s4 D$ t* }
        /* These pins are definition at <mach/mux.h> file */) F( t( r/ I* \$ h
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% ?& A: [% F7 ^3 a9 }8 x7 z        -1$ ]; k3 n3 L' {, j
};
) V3 p0 L0 M, i. T. E4 K
% G, p& }( M' [' M. Zstatic struct gpio_led da850_evm_tl_leds[] = {4 r/ g/ Y6 H% a
        {6 C# O6 P' [# E  v, I) _3 ?0 S' f) n) L
                .active_low = 0,
' r3 i2 U0 ^" v4 T* |                .gpio = DA850_USER_LED0,# B4 ~; S6 R) N) B: g2 x/ ~0 [
                .name = "user_led0",
5 ^" f* u4 U4 g4 e0 M                .default_trigger = "default-on",
! z' I6 D- f1 D+ d3 c7 N        },' |: z2 X  {/ {$ R3 o1 K  Z7 C
        {4 R. m' U  D, P+ ^/ A0 W* A0 u) Q; y, w
                .active_low = 0,0 i) E9 z4 r* B3 d  [
                .gpio = DA850_USER_LED1,' P" q1 S% p) _1 v1 ]
                .name = "user_led1",
7 f" a) N; A6 _2 I( s                .default_trigger = "default-on",+ k, t, n' `) @# N! c
        },2 ~9 c) O- h6 \1 T5 c4 `- O
        {. Z2 a3 X* R# ^0 v) m$ g# f7 }
                .active_low = 0,5 y$ E2 _& w* J$ S
                .gpio = DA850_USER_LED2,
3 |9 p5 U+ c$ z4 H% I  I" z' H0 ?                .name = "user_led2",
" \# G/ O/ S7 ~0 u                .default_trigger = "default-on",
, k' K7 W8 A, S( }3 T( n6 M        },/ R9 J" \( X* {) u0 c& v
        {
, @2 ?5 G. K$ ^                .active_low = 0,' l0 z" j8 O# {3 D' v
                .gpio = DA850_USER_LED3,& j6 v; B$ b' {
                .name = "user_led3",
5 D5 E) h4 i; J  Y$ R2 I# h( P                .default_trigger = "default-on",
  L; p8 k# a  v        },% `, {) h+ U9 G2 g! L4 _
};
# o- l' d3 S+ x+ r% P! D6 d. O( I& ?: ~7 C( \; a
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# `, r  [2 d# _/ |: [3 h: `        .leds = da850_evm_tl_leds,  [' C" ~( }4 T( I5 n
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% Z: Z/ J$ [+ ~! U1 q3 W/ K};
' m4 f7 J8 z' P
% l+ @9 K: N" Nstatic void led_dev_release(struct device *dev). b, k; c, @: J4 U% c
{/ O  f/ s, `2 `& b
};
4 H! w& d& G3 Y8 U! D( i) A
! t* o3 J' O" P. R! Kstatic struct platform_device da850_evm_tl_leds_device = {
, j, d! f) ~% j( r        .name                = "leds-gpio"," T7 I9 t+ K+ G# f" @* A0 T
        .id                = 1,
* v. p1 O4 Z7 ?7 z$ s3 r5 T        .dev = {; W; ~, G* Y( ^. U. |0 \+ q
                .platform_data = &da850_evm_tl_leds_pdata,
7 {9 M$ h& i5 |% m$ q! m                .release = led_dev_release,5 @0 b* e: ^. V  ?- {- L' r
        }
- Z3 [0 I) X' h! Q* Z};
, K% E; |1 s( L; b- s: u
- K3 G* a  ^; M. r3 Nstatic int __init led_platform_init(void)' I! q- q9 `. d3 c/ t7 w4 O% H6 v& S
{6 e% S" j7 w3 x- K
        int ret;1 }  J; X* S& n& Z, ~- ^
#if 00 i1 |$ y( n9 c# b1 \, p% D. c4 J$ \8 \
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! U% E4 H# k  M2 x' p        if (ret)5 j+ d5 y$ a/ o, ~. D
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 p2 H! J: ~: s& q: b; h- S2 Y# n                                "%d\n", ret);
% Q  a, s- E  s, P, e& z#endif- w% h+ D6 g( t  c! r
        ret = platform_device_register(&da850_evm_tl_leds_device);
- J! K7 s; a' x* J3 ^2 M        if (ret)
, B; g& |8 N, L% x) g                pr_warning("Could not register som GPIO expander LEDS");
0 n8 r( S; R* ~/ T        else
$ ]% F5 ?; s$ I' I7 I                printk(KERN_INFO "LED register sucessful!\n");
& j4 E. _1 y+ g  ?/ f
) m) Y1 I1 g; j$ F" H        return ret;# v$ O, g+ F6 Q6 O7 }- h
}" O3 l' B- g7 v7 V( G7 d- Y4 n

0 m" E- q# N4 s5 V' P# o' X! [static void __exit led_platform_exit(void)+ U& U1 r' a, T9 k0 v
{
- Z% A1 C% I( [9 F1 V6 g+ k) b        platform_device_unregister(&da850_evm_tl_leds_device);  H6 j" `6 K& e* o% s
4 G% @8 O" j; ~) s5 S$ M
        printk(KERN_INFO "LED unregister!\n");! C5 Q* C9 k: L9 V; C
}$ H8 N  C3 R4 y& l
- a, n+ U4 O' C: p! h
module_init(led_platform_init);) d5 O& |; ^8 S" h# `9 d6 t. S9 C
module_exit(led_platform_exit);
0 x0 x* O- F2 }# [2 h+ [- U! b: i4 R1 l5 R' k
MODULE_DESCRIPTION("Led platform driver");9 c1 t* Y2 N1 R" U! j; v
MODULE_AUTHOR("Tronlong");
9 \8 b, ]% w2 z2 H+ d$ S+ hMODULE_LICENSE("GPL");# Y8 e: r, ?! W
4 b' h+ X- @! c1 h2 @8 y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-15 18:31 , Processed in 0.035728 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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