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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 r, i) N; z+ T* d1 F
#include <linux/init.h>
2 F- w4 V' z$ i" @6 s9 M% @#include <linux/module.h>0 y  {9 P2 B+ d2 F% o- D/ U
#include <linux/kernel.h>$ s/ N0 x7 l. P7 S
#include <linux/types.h>
) T( Q- ^+ ^/ ^#include <linux/gpio.h>6 J* W' u( N' Y* M" M
#include <linux/leds.h>
" C4 P- C8 H3 R#include <linux/platform_device.h>
7 ]  ~2 w6 F$ ?$ y  [- k
8 Y/ h: X% ?* q- Q7 E6 X: ^! H#include <asm/mach-types.h>
& f6 @" j. \1 [3 q+ Q7 J7 Y#include <asm/mach/arch.h>" R$ N- G4 f$ N* s7 S, V4 l9 Z
#include <mach/da8xx.h>
) T" N1 f7 g9 j0 G  P#include <mach/mux.h>
5 k; B3 w1 @' \3 V7 u9 p1 S0 ]: Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 c- r5 J. \. {6 d3 O; T
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ t: U2 r/ i" `4 h0 W8 K5 w5 C#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 W6 ?# ~4 y# G$ ]9 b3 r#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! Q. i5 b- c* e  a

9 V  A' G+ S, Q: N- y/* assign the tl som board LED-GPIOs*/7 H- u+ }! G" @9 H+ a
static const short da850_evm_tl_user_led_pins[] = {' i' k" z9 h# ]0 v4 o) J
        /* These pins are definition at <mach/mux.h> file */
. f9 b3 L, B& Q7 t& p; v        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' t  p: y( B7 m/ }3 X8 e        -1& W& m5 \" {8 c
};, r/ f0 ?4 K6 C. v( l- [
: P' E9 ?% K# Y6 Q0 g: C0 }( D
static struct gpio_led da850_evm_tl_leds[] = {
  z+ z5 L+ x- [/ e& T* X* X3 h* i        {) u7 S$ \4 v$ W: A; m8 O1 {
                .active_low = 0,
5 `5 n4 h+ Q) Z0 o, W' Y                .gpio = DA850_USER_LED0,
: d6 m# \- Q" B2 w+ G4 U3 y                .name = "user_led0",* B' b" v2 H7 p# f* b' z
                .default_trigger = "default-on",0 r4 F5 m" r7 o2 ]( Y( T
        },% j( h2 D5 |. [
        {# L- f1 N' e) _& N# K
                .active_low = 0,
; n2 O7 h; u/ e6 B                .gpio = DA850_USER_LED1,# N" D# f3 k/ W: H1 H( J
                .name = "user_led1",
& p3 R: W, r  z+ Z( ?  t" i                .default_trigger = "default-on",1 I4 [3 j; [! H, U4 G! w
        },0 m: M$ _1 N/ j5 a+ K
        {
( Z: C* K0 n6 Y: W( r                .active_low = 0,
1 u+ Q/ |! d0 u& t: O, ?                .gpio = DA850_USER_LED2,* P+ T9 q" q8 a8 A3 A
                .name = "user_led2",
  M2 C" T6 e" @- `8 a9 y& m7 U                .default_trigger = "default-on",0 Z4 \6 P3 |* \
        },
# a/ Z! B  A$ d9 h; U2 C! k        {$ ]. t% U) R+ q. S
                .active_low = 0,
% Z; X# A% r; D                .gpio = DA850_USER_LED3,. v9 r! n6 G# G6 Q
                .name = "user_led3",- L7 l9 t( ?% a! t
                .default_trigger = "default-on",# g* _' Y' Y8 H+ ~
        },
: L7 f$ Q4 e, N};" g- V8 |1 h9 ^3 h
6 @  d9 h; H% J0 E- G
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, t1 p4 E( U! p+ g, [
        .leds = da850_evm_tl_leds,
: i) S) e! O6 n* @! x: `        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ z4 d0 W0 @/ v  _; F. S  |7 m: }$ g2 C( ]
};
& B  ~" J' N+ K3 u# p! f! C5 C0 r6 p7 X8 S; O$ ?* w
static void led_dev_release(struct device *dev)' [- ]( T. D: A0 d8 B, ^
{
1 [7 ?3 ?0 y7 e$ F  J! V4 |* X};. w' m) C3 H7 P5 T! q6 c( u

5 Z/ b+ C) H* f% V: ^static struct platform_device da850_evm_tl_leds_device = {+ U9 M) O; T3 r/ B$ E
        .name                = "leds-gpio",( u! D+ e6 {" I
        .id                = 1,' A4 L8 z* S0 i5 o/ l' R# c
        .dev = {
* s% K2 y6 F9 A; T4 W8 l! h0 q                .platform_data = &da850_evm_tl_leds_pdata,
+ I; o7 W( V- C) K3 U                .release = led_dev_release,
3 l2 f5 p6 d9 I( q5 ~. Q' h        }
- M0 _9 [, b$ E5 `% }5 ~6 w};
9 l+ t# ]+ ?4 u1 b; H# l. V
; g/ `+ L2 z! N5 M, p/ p; Sstatic int __init led_platform_init(void)- w9 @5 M6 L- V. X9 O8 d
{
% y% ?7 r2 ?# ~3 }( n& O' t        int ret;
! X# g4 |! s. K+ d# O! {#if 0; h6 Z1 O/ B1 H7 J& n
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( ^2 \( }, l. _* ]- b
        if (ret)
0 |" S' `$ A3 W* k4 \1 K                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' k+ ?* J2 o! L/ B1 T; _
                                "%d\n", ret);
! Q( A/ r# Z% K4 G1 R#endif7 v2 Q# l( V$ D
        ret = platform_device_register(&da850_evm_tl_leds_device);* Y9 w9 q! h3 j: T' f: M$ {8 X2 y
        if (ret)2 J: D3 Y7 d9 e# M6 j, m
                pr_warning("Could not register som GPIO expander LEDS");" h+ u" v' U/ O0 F0 b8 Z
        else: o  ~( k" D4 z
                printk(KERN_INFO "LED register sucessful!\n");
9 X7 M% y  ^: U; u1 E
6 o9 s% C3 N$ k# k        return ret;5 Q, {3 j9 p5 J& j' h
}
/ Z. j7 n# e2 I1 l. `
" J. h; W5 z' mstatic void __exit led_platform_exit(void)6 `2 q5 r# e% p( m) v
{
' @# q. F8 r# {% e9 S4 w9 v        platform_device_unregister(&da850_evm_tl_leds_device);
0 d7 I7 g. R3 w8 p1 n" i, `/ Q# T% X. L8 [; ?1 |7 F
        printk(KERN_INFO "LED unregister!\n");
7 H. f  j7 C% _; d6 d6 r}7 b6 ^: ^5 C* J$ f1 z

0 O& T$ ~. w/ s+ e6 [module_init(led_platform_init);  K6 N) E8 O4 ^$ O6 N+ g
module_exit(led_platform_exit);! O2 ~$ Q" r0 P1 Q% x9 A
! O- r; z8 ?3 J, L: P. U' C0 Z
MODULE_DESCRIPTION("Led platform driver");  S/ N* Z8 E$ o0 v
MODULE_AUTHOR("Tronlong");( c7 K- Z! N$ x! g/ Y
MODULE_LICENSE("GPL");, _5 C/ l9 J' |5 H+ T

/ H: W) U3 ?) y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-9 13:44 , Processed in 0.050884 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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