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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# [" q: [" [5 m1 ]6 u#include <linux/init.h>, V) o, \/ }  O2 A- s& {) T
#include <linux/module.h>" x* ^+ ?! k8 ~: V- p6 M6 b0 q
#include <linux/kernel.h>
, R8 `0 E: c$ X7 C#include <linux/types.h>
! G# g" R* ~% D4 m0 V5 ?% W1 c#include <linux/gpio.h>
6 A! ~4 I5 g  P& F' Y" c#include <linux/leds.h>
% K7 h0 D2 S4 z; i- ^+ |( `; v# n# ^" A#include <linux/platform_device.h>
! i9 v3 S6 [: x) b& w  G" r" o1 d; P! F* W7 i
#include <asm/mach-types.h>( s& b/ o% F- J: w; C) q7 n8 ~
#include <asm/mach/arch.h>7 W2 q; j6 J3 d  r
#include <mach/da8xx.h># l1 D. U$ y6 m
#include <mach/mux.h>6 K: P/ N0 E- F1 `  d; d6 [5 [* b
% j6 G" j9 x- ^, T" r9 V" F1 ~# s
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ o/ n" q* ?% j9 r8 j% ]
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 Y1 P0 K, V9 X" J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& f, ^3 v. P: ^& B% H  {6 z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); D0 D# s* T( A7 R) v. a
& H" L% b3 Z1 `8 D- m
/* assign the tl som board LED-GPIOs*/
" E  S# G" Q& Y8 tstatic const short da850_evm_tl_user_led_pins[] = {0 `! _2 ^1 X+ x( P
        /* These pins are definition at <mach/mux.h> file */
" b1 g9 }  `" ^1 P7 x        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 i$ E0 f+ V$ _5 @9 k1 Q2 U3 F
        -1/ h$ p. g$ h3 \5 J9 G9 C
};
+ J* r- V% s( q# s0 L4 u# |/ u
! R) R' W9 J1 `static struct gpio_led da850_evm_tl_leds[] = {! Y  c' M- M5 |2 \5 c& n8 K
        {3 g  Z+ I3 V- |
                .active_low = 0,
7 P4 h2 i! \: u' O8 J                .gpio = DA850_USER_LED0,
+ o  u2 {1 C; J$ w# V. v                .name = "user_led0",
4 m! M+ M* H: L: ], x                .default_trigger = "default-on",
/ p, }3 ?; H( `/ k        },) c8 Q% T6 |) z
        {
' b9 \# \" ~2 K# w6 H7 L                .active_low = 0,
* a; [5 I- @3 w% Z( L) l, K                .gpio = DA850_USER_LED1,( ?1 {7 m) T3 I$ p7 [9 n' M: X
                .name = "user_led1",
9 v" _3 Z, @# v8 k9 y, N7 N9 [6 s                .default_trigger = "default-on",
9 X- s" e2 x% m6 X( V        },
: E0 n* g+ D" v9 X' @+ x+ c        {
2 T4 X/ Z3 P. [) M& p' A                .active_low = 0,% _/ G5 R* O& y; T/ Y% Y& ]3 P
                .gpio = DA850_USER_LED2,
. t" n: Z# K- t% D" l2 n3 n4 U7 o( L                .name = "user_led2",
1 Z2 r. U2 p, b  ]/ H0 O! ^                .default_trigger = "default-on",$ V; y' A; F- k6 ?8 D) a9 b4 B
        },
6 L, w( u3 Y% o) j        {
9 ~, |& T3 e' }0 x- i* A5 B0 q                .active_low = 0,  g; P7 d' d1 j* I/ k
                .gpio = DA850_USER_LED3,
7 k. B7 ]* k# u( {% Z; q" J4 C3 S                .name = "user_led3",8 o1 h! U' G' x4 ~, ^( t/ F- f
                .default_trigger = "default-on",1 D) A. ^  _% w/ U, `5 S  j5 \- U. E
        },
- j5 Q' s" N5 k# A# M$ H};
0 q4 n6 g1 {( F& P; g$ U2 m9 R9 O" X! v! C& a( W% h+ `4 `5 H
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; m7 j( |# Q9 v* P& }" M
        .leds = da850_evm_tl_leds,
: C0 c# G/ m, m  K$ k# X: O        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) s: q2 E/ r3 p7 \) L};+ `  y3 {7 e& G! O5 `
! B* v/ w/ a8 ?8 [- }  R7 \
static void led_dev_release(struct device *dev)2 p1 N6 r4 I5 |5 K, V+ r+ k2 i
{
9 g/ A2 ?% A+ f( c3 i1 Y};- \) D$ ~% d1 G9 K" H+ ?
8 W' q" f; P4 C( Z
static struct platform_device da850_evm_tl_leds_device = {
& P* d: M& [! a/ N) L$ I7 y        .name                = "leds-gpio",
0 H! Q' m9 }, Z        .id                = 1,7 T* d5 c3 X# o
        .dev = {" ]2 i* l6 u- o( u2 [; q5 y
                .platform_data = &da850_evm_tl_leds_pdata,
5 _1 b% y5 G" i/ ^) t% r/ K                .release = led_dev_release,
% X8 C/ B' g- h        }
4 I& h) _+ G& {* U3 e2 c% O$ z3 z/ T};
2 `9 Y- E9 E$ j: b+ Y
( o% P  _; ?& p0 hstatic int __init led_platform_init(void)
, t! k# n3 Z+ t% y( d{6 D. r' P6 F( w1 }) b1 _- l# e
        int ret;5 c2 x9 ?1 i4 D- f
#if 0
) c4 L5 \4 S- K. s        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 B: \! X  s8 Z4 j, |' k; G* H
        if (ret)' }9 u% |$ u8 t1 J( p: T
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 H+ Q7 y; ?9 ?; w5 e                                "%d\n", ret);
  I6 u; }: i. f7 W#endif: p" `9 k) H/ ?+ I+ K# }* ~; }
        ret = platform_device_register(&da850_evm_tl_leds_device);5 C' j8 t* z/ s* i  i  \. A+ _
        if (ret)
. ?1 X2 u1 t4 @/ C                pr_warning("Could not register som GPIO expander LEDS");
& U+ s: E; ~- k% v: r$ G6 K        else! @' ^% E- f- C' }
                printk(KERN_INFO "LED register sucessful!\n");
8 x5 d; |: X6 G4 i/ y: u2 d# [
# ^, }# S+ a' E' V# N        return ret;: G, C+ U; N4 o6 E6 x, Z
}+ H6 X$ d( @0 T6 c# c: y9 y/ _5 F
3 v/ t7 m- k; h# j+ A; c4 z5 K
static void __exit led_platform_exit(void)5 s$ J/ o6 ?5 m
{6 z% g8 G# t5 B1 ?) e
        platform_device_unregister(&da850_evm_tl_leds_device);
: Z( @  l! S) K* R7 o& L2 h. N* q) y: S2 G( x" V1 B: ^1 Z
        printk(KERN_INFO "LED unregister!\n");
  H' j1 R) i% ]}( Q8 b" L5 }4 L! ~) |0 c# d

" G8 F  s4 R" Y. d  Lmodule_init(led_platform_init);. ^3 l" b9 d3 G: ]# D4 {# L" `
module_exit(led_platform_exit);
; E# U# M( p, s4 q/ v. [2 ]- Z) }- b7 \; P
MODULE_DESCRIPTION("Led platform driver");* ?1 p9 l/ L& A1 h
MODULE_AUTHOR("Tronlong");% `/ }( d% }+ m8 D# a
MODULE_LICENSE("GPL");
( y1 ]$ \1 ], A# d- [' D( \; I7 |: S1 c$ }" _* s4 i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-5 01:10 , Processed in 0.040698 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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