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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, H% m/ p7 M4 t. n9 C, y
#include <linux/init.h>
. O, a5 }- l" S  z: m#include <linux/module.h>5 _' K5 E- n7 `7 \1 U# y  O
#include <linux/kernel.h>
4 X% {; k) U: {: e" {5 O) r( b. O#include <linux/types.h>+ S- I: a) ~% V# b+ M4 ~( C
#include <linux/gpio.h>$ z; x8 b8 B' ~# C, o1 Q
#include <linux/leds.h>, [9 x/ \2 k# E0 Y8 e, U
#include <linux/platform_device.h>
2 `' w; y# q' `  ]" ]: q5 r& C: T' D2 l* j+ T% }4 m; K% C
#include <asm/mach-types.h>7 \$ k6 S% F) t% D  ~
#include <asm/mach/arch.h>
( Z8 Y; K% ]6 g6 C& M5 |#include <mach/da8xx.h>
7 _+ u% v3 n$ F% w, J: G1 ~, O' \#include <mach/mux.h>4 R/ v1 b9 R7 j+ h4 x

! D* H" a# ^3 \8 M4 ^7 s#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 I- S7 o& I" P, h% W#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 a6 }! w. `$ H#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" r7 i7 n1 @0 q- N6 G* V( W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 _& I- r  a6 h' ]  G9 M* {( J9 _9 c( m  U# i
/* assign the tl som board LED-GPIOs*/
) }9 P# Y/ V8 }5 }6 O$ _' Ystatic const short da850_evm_tl_user_led_pins[] = {8 k+ k! z7 Z! ^3 _! ?# Y) B5 o) |
        /* These pins are definition at <mach/mux.h> file */3 X( Q' |3 e7 {8 \8 X
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ m" N$ K& D# o  c- t8 _$ {
        -1
2 A! N$ P+ |  k+ l/ P! p, e};! v1 |8 M5 g' V
" ]! v- m' S# B' r
static struct gpio_led da850_evm_tl_leds[] = {& m2 D$ X9 k2 L1 ~
        {" H$ m& b/ C$ E; h
                .active_low = 0,
/ m1 {1 ?" ?* ^; B; j' G                .gpio = DA850_USER_LED0,
/ n' m9 f3 U7 r: p- T                .name = "user_led0",$ z# E! \7 d& y5 X
                .default_trigger = "default-on",! j& F% m$ w' ]
        },
( Q9 F, f: F' M& h! x. g/ w# s: N5 F        {
$ `. S1 ?1 y( R, H: x: z                .active_low = 0,
6 C9 [& N. A& V& u; n; t                .gpio = DA850_USER_LED1,
" Q& _* O4 A- X/ q                .name = "user_led1",7 x, [4 n' ~- |# ^) M
                .default_trigger = "default-on",
! F9 }0 F% |( Q; A7 f6 x2 @& @        },
, g! D6 B, U! y3 g" G. c        {
4 Q2 Q& h) \! ]. h+ ]                .active_low = 0,5 ~3 B5 p6 ^/ C* J- V
                .gpio = DA850_USER_LED2,
7 n4 Q# u) S6 ~7 W, n9 w                .name = "user_led2",! f) l8 Q% \& Y4 P$ a2 D
                .default_trigger = "default-on",
2 q# l! \/ ^0 G  T        },$ P- \' v: _$ n2 b. Z% L
        {
6 d1 S- l+ k5 a$ @9 i8 Z                .active_low = 0,
/ N  H- |! ]7 H/ h' A3 d3 `                .gpio = DA850_USER_LED3,
3 Z+ `* T, h6 M8 D0 l4 [% g9 `                .name = "user_led3",
6 I4 X% X; ?# k                .default_trigger = "default-on",
  j9 q* k7 {" r% \! p4 n2 }        },
; N: a  T* z, m* K};' K- K, I% C- A. T# C

7 h9 d! n1 e1 U; p- ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 ?4 b8 H. \' P9 E1 l
        .leds = da850_evm_tl_leds,5 l1 J% D: b! v4 h) U
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( a# E1 Q& N) m7 f1 R- w, j};
2 K1 S+ \+ z# H  V9 M* G- `) I- f- I- }$ ^/ |
static void led_dev_release(struct device *dev)
0 l5 Z9 a9 `7 B{. P" u: r' J) W) ?  K! r
};0 z, s1 }3 X4 W& B' n
" F8 ]4 f3 P1 Z; |+ E2 _! a
static struct platform_device da850_evm_tl_leds_device = {
( L1 ?1 i% i5 ^& |/ {+ \        .name                = "leds-gpio",
; M9 n& P( O4 i, @8 a/ _' q, W        .id                = 1,* ^* O/ Y8 l8 L* R
        .dev = {
' m2 U  I: f* S+ Z0 I. F! O                .platform_data = &da850_evm_tl_leds_pdata,/ H# q1 v! w8 _7 j9 a
                .release = led_dev_release," d  b% S1 T' i* ^, e7 o7 ?
        }5 d6 m0 K/ C5 t3 ]+ J5 t# R  _
};
7 `/ Q8 H& |& s' X: L# ]  o* y5 V6 e
static int __init led_platform_init(void)& _- h9 S( m& W& Y2 B
{& i  L3 p. |8 P( i# N9 \
        int ret;- {, h8 `  Q2 c- ^
#if 0! `( W4 l- S! @+ _% {4 t$ ~% i0 j
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
" a1 Q, ]+ m  M2 S0 \, X6 ?% V        if (ret), n5 n: {. R+ v6 D* c# R! Z  J, u0 ~
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' d: b- Z' \9 I# t                                "%d\n", ret);
( G5 l) J4 a. H+ a& O9 `+ b#endif/ k0 v/ j8 z* Y4 ?, n
        ret = platform_device_register(&da850_evm_tl_leds_device);6 E* s9 b+ E( x1 D  ^7 W% Q
        if (ret)
. K2 |( m1 F9 F7 A                pr_warning("Could not register som GPIO expander LEDS");
- l8 d- t' H/ r/ U9 F        else0 N9 S) X3 P9 y/ G
                printk(KERN_INFO "LED register sucessful!\n");" `- p! x' |0 x; t% x
1 p7 i6 t$ X, n& K& i' a
        return ret;
) `/ W& r" x: b' x}0 F* V2 N% f" f. L1 h1 }, _+ W
" ^' z7 y/ C' F% V" R7 `: ?& N/ n4 W
static void __exit led_platform_exit(void)
4 Y% _1 Y$ r5 }9 [9 ~9 Z# N5 X{
. W0 h: S- H2 z; d6 O        platform_device_unregister(&da850_evm_tl_leds_device);
4 D5 u5 c3 Q: _1 s/ O# `2 n6 }* R8 M9 R  j9 q, V3 Y
        printk(KERN_INFO "LED unregister!\n");
! R. s8 u0 v3 ]0 ^5 E}  m4 }/ ^( v) i9 L

3 ?* N9 ?  @0 Jmodule_init(led_platform_init);$ I1 A2 |5 X# l7 l
module_exit(led_platform_exit);3 {9 {3 Z8 u4 \. }( @" ?
( z& I% U! l2 l3 b$ Z2 b
MODULE_DESCRIPTION("Led platform driver");9 ~9 b, s& l: h# v+ u/ K+ B6 k
MODULE_AUTHOR("Tronlong");
' u$ @" N: f2 q& T# J* b) `MODULE_LICENSE("GPL");* B/ C, B# {, v# g" \- P

6 @0 z7 W5 ~/ @' q3 k4 B5 T3 Z( D# q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-15 17:53 , Processed in 0.054050 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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