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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ B$ V* i9 e( l' T5 ~' ]7 M
#include <linux/init.h># X5 ~# l$ t' d/ I+ Y
#include <linux/module.h>
4 O; n8 A7 k; I9 g! ?/ j2 Y$ J#include <linux/kernel.h>
& ]4 D) O3 S! a+ O" {8 n#include <linux/types.h>
- K! ^7 C# [" K#include <linux/gpio.h>
1 I' O% O' E; _  a' g#include <linux/leds.h>1 O% v" {1 H/ F
#include <linux/platform_device.h>
0 f8 Y+ ~  R' ?: ^
3 H: i4 ^4 B- q4 K1 J( U# [#include <asm/mach-types.h>9 ]2 }; ^" _/ c/ q! h
#include <asm/mach/arch.h>
1 T; W  Y, a) {  O% Q#include <mach/da8xx.h>6 ~+ p' m1 d, C  `. }' }- h, Y
#include <mach/mux.h>
+ o% z6 C& w9 F& x7 ?
3 s/ n/ t! n! R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 `' a0 g4 B+ q* g, d
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! S: a* [* C+ s
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 K) \& u/ C( T! J, @#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, z4 `/ j/ M; `% e# g, P9 U7 @. Q0 {" S1 o7 m+ Z
/* assign the tl som board LED-GPIOs*/
5 k% C+ }" F# l7 L) b- u. ]static const short da850_evm_tl_user_led_pins[] = {
" D; T% t5 W& ^! v6 C        /* These pins are definition at <mach/mux.h> file */
* e0 f& ?! F* C8 k! e3 t        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- B# _/ G( N3 ]6 {
        -1$ S* n: Q8 T' v7 h! T* f1 d* {
};8 `0 ]# _% a2 {

6 y/ \  c( a; F/ i0 S" e1 ?; P6 ]* qstatic struct gpio_led da850_evm_tl_leds[] = {
# x* l( d. R$ f. X        {
8 x$ o( f4 A% X: n6 C                .active_low = 0,( j! s  J1 f& n; K9 X
                .gpio = DA850_USER_LED0,; o& I/ Q; z) A& R: O5 J) ]
                .name = "user_led0",
1 S3 a& M8 R  U                .default_trigger = "default-on",
$ q( [6 @4 _3 i3 N        },5 ]7 l4 `9 R& z- n1 a
        {. e6 A  `3 J$ f6 c
                .active_low = 0,6 S6 i* \2 Y, M+ b! m3 K& W* q& m- G
                .gpio = DA850_USER_LED1,; Y: B/ @( F3 m) E6 D+ t) n% m% w
                .name = "user_led1",
- f% V3 \" Y2 p* e                .default_trigger = "default-on",& l) w+ D, E+ B" q+ P0 A( g
        },2 E5 z7 b/ r, u/ q
        {
0 I1 h* v! e& b  |: l                .active_low = 0,7 f6 ^4 u* \, k! ?+ Y! y
                .gpio = DA850_USER_LED2,
, L5 x. f7 G! ~7 O5 {4 ]! Z                .name = "user_led2",
" X7 y! _1 n! f1 i                .default_trigger = "default-on",
1 d7 e5 ]1 ]7 k2 u1 v" \        },
/ s: a/ Y  E& [/ k. ]5 X- s# t        {4 D% N- v& C$ F. c
                .active_low = 0,
  s. c) X* V" t/ i8 |  t, J                .gpio = DA850_USER_LED3,
, U; h; o1 F( ^4 }, {                .name = "user_led3",
- ~! J8 N, p0 p1 {  s& ^4 ^                .default_trigger = "default-on",) o, M' B7 T: J( v$ z! K
        },
1 q+ u3 W! Q0 Z7 V; ~0 M};0 I( C. d2 C9 x4 S  r
5 e9 k) p- b3 Y# Q  u9 t
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! Z: G4 q! _6 A' c3 s; i, c) C
        .leds = da850_evm_tl_leds,6 K  q' U& ]$ V* y# J
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- Q: a- S. ?" B3 q6 `$ }};- C( k5 m; g$ A8 g. q
3 K* X. Y5 _+ l# t, d
static void led_dev_release(struct device *dev)
& R8 w9 _0 Y! t6 K( r7 {, p0 ~5 Y- a{( \1 W# |9 F, w' n
};
( v9 K- [# c. w/ L0 s
9 c: N+ ^0 i' W# R! [# p) N2 Vstatic struct platform_device da850_evm_tl_leds_device = {# Z& d% q6 j& l9 p/ C/ L1 b3 J( T( M
        .name                = "leds-gpio",' k' x3 G0 n6 v$ {7 ^1 _& o2 x
        .id                = 1,$ i7 ~  A% y" y1 ]8 M
        .dev = {& V% j4 A# e% H3 H4 d( K6 o
                .platform_data = &da850_evm_tl_leds_pdata,
/ @7 G( g# ?( l. P                .release = led_dev_release,
, A+ U- q, A+ \& s* L        }
7 m) e$ u! O0 K5 k" l' y};
3 }& ^- I. P( e' j+ f  D9 w. g8 _- r5 S' u  m
static int __init led_platform_init(void)
* }! {  P# I" |) |8 m  N{0 D+ @9 D; _7 h9 _9 o
        int ret;
5 A" o% e1 M1 \. J, Z7 X3 [#if 0! B. p, z9 ^8 M- `; A0 |
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, @0 e6 E& t+ ]: s
        if (ret)
, b' _  w# u% v( ^9 y( w                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* t9 @  z1 y- X/ k1 F( E! T5 H' S                                "%d\n", ret);9 C; n8 E7 x5 |4 T3 K
#endif4 `  k& O# O5 U  E
        ret = platform_device_register(&da850_evm_tl_leds_device);
# V$ f5 d/ v3 W0 @. {6 j: ?; e" v* z        if (ret)
& b  _* W( F" ?  L                pr_warning("Could not register som GPIO expander LEDS");
# t. U/ t3 M8 g        else
1 b( q4 {: F% W) H5 L                printk(KERN_INFO "LED register sucessful!\n");% m$ J1 Q4 ]- a
) I2 L' I2 q* f8 g9 K2 Z
        return ret;
- E5 R; R  v0 k. f- `4 h}3 w. M9 s& E9 q' B. S( X

9 D& p# L$ m& O; h% G* ]' Ustatic void __exit led_platform_exit(void)& Z# c2 `' w$ g
{
0 l! u9 a/ }4 t2 }# H* N1 [        platform_device_unregister(&da850_evm_tl_leds_device);
! X# h9 c4 h, V. D) R; f* c
7 g0 y( x3 L( [# i9 T        printk(KERN_INFO "LED unregister!\n");9 Y3 n6 c0 t% y, {0 ]- D" J! Z- M- l
}
3 X) a  w( f' R. ~: e
3 C- C/ X1 Z( Cmodule_init(led_platform_init);9 p) }0 E8 H5 e2 C$ e: P
module_exit(led_platform_exit);
1 U& T  Q+ \! @4 K- `' s) N2 i$ Z& d" S( f4 m: t/ _) J$ ]
MODULE_DESCRIPTION("Led platform driver");
# w# `0 E, M6 j* X0 W: w9 q3 oMODULE_AUTHOR("Tronlong");
) m" D3 R+ n% D. `; R4 bMODULE_LICENSE("GPL");* V( ^# z* X5 v+ k; j4 X3 ]) F
: I$ l# T3 k9 O7 W* x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-23 12:34 , Processed in 0.041882 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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