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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" T% [7 H8 U7 ^! |. R! |#include <linux/init.h>6 Q0 y* x: \) ^3 u5 f: Q
#include <linux/module.h>- E( u( ^, Q9 `1 |
#include <linux/kernel.h>) D- o8 k% {- c6 \  N7 |
#include <linux/types.h>8 k+ m  }+ [2 O% O7 I
#include <linux/gpio.h>
( I9 z* U+ H# K  L9 A#include <linux/leds.h>
/ M, h$ }% M1 [* ]0 J2 u! b#include <linux/platform_device.h>1 |) Y. U) _+ j  g3 h) C6 z

4 M, j8 v( z8 a% \! v#include <asm/mach-types.h>
3 l8 i4 U% J+ m; ^, A#include <asm/mach/arch.h>
, s9 h1 z& h9 n, C1 g#include <mach/da8xx.h>
! S% ]/ E. Y4 S7 W+ W#include <mach/mux.h>
5 l9 E$ F& W- _7 @- o9 B& ^0 h- H. ]) k; \$ S  l
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 v5 l7 A0 u$ U" ]& E7 L# J#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 @3 I' p0 e. _4 J2 U8 ~#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( v3 ?( [) b/ N3 t
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 f4 p8 X2 }* Y" e7 }. r
/ Z6 V; g' U3 k5 _, G8 v/* assign the tl som board LED-GPIOs*/; M/ S) [8 [: L7 M1 x! }
static const short da850_evm_tl_user_led_pins[] = {& [7 G! O" P. q5 o
        /* These pins are definition at <mach/mux.h> file */$ F8 }% w' c0 M# n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 I( Y! N: W0 N1 U9 N; v        -1( _% r3 c) O6 ?! y
};6 W+ _/ o4 N( X& u# @2 Z
& Y# D; z' G6 I0 h1 m- ?) S
static struct gpio_led da850_evm_tl_leds[] = {
5 m0 f8 n1 _; P  G8 M1 p: M        {
9 N+ x; Y* E* ]; D8 G, }                .active_low = 0,8 m( q, B, e3 L8 {, {
                .gpio = DA850_USER_LED0,
5 S  _2 S! S2 w0 W# ]" z8 K                .name = "user_led0",: O; o% J: L( i6 V2 h# s2 `
                .default_trigger = "default-on",% o: j' b; p" m) C5 o4 I9 W& L( |
        },
' ]3 B: w3 j$ y" i. e0 Q        {
/ u: O$ ~% ]2 T3 U9 }/ T9 J                .active_low = 0,! K) w- ]2 ]$ U2 {9 |
                .gpio = DA850_USER_LED1,
; {8 l, R( L2 ?6 R/ ]                .name = "user_led1",  E( I' j6 a* _8 r( L; i1 Y
                .default_trigger = "default-on",, V+ c# S+ X8 U5 M+ a# f
        },
. ]4 U( o" `0 ~, z: ?% s; m/ m        {
5 R+ `9 D& ~% s                .active_low = 0,
7 g% O9 V! ]  B) Y7 }& C                .gpio = DA850_USER_LED2,! ]; v5 j/ o$ D" o( s( j, v
                .name = "user_led2",) R- x# G: K" M7 W4 r
                .default_trigger = "default-on",
( J/ {4 O3 z% z5 P5 _, I$ I. N4 z        },
4 A7 H2 w& w$ {3 V        {
5 T( G, i4 H% R  v# A                .active_low = 0,
8 [4 `% I/ l1 Q4 |& K% |: s                .gpio = DA850_USER_LED3,
6 @2 O7 T6 z2 E$ P6 k0 T                .name = "user_led3",- B( E" J0 z: m
                .default_trigger = "default-on",: a" d8 l$ n9 H6 b( U4 e' p( h
        },
* V# \) ?' ]8 O" |- J. Q9 C2 w};
# V' V. _  V% ~, y; C# w4 P& ~* |( A3 b8 O# X4 R
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 i  n2 p, Z# q' v/ F        .leds = da850_evm_tl_leds,
7 q5 E1 d- M1 P' X2 C        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 i, e, T; U) t1 I4 u};( ]( @* k# d/ F' U8 b. B& x
& [$ [, c. M( A1 @, r3 z
static void led_dev_release(struct device *dev)( w! \4 N- X; _+ e
{
2 o& K2 h- @- G, a5 s: V" z};7 v. f5 u/ u. c( F
8 T; W& q4 f5 z
static struct platform_device da850_evm_tl_leds_device = {5 j, ^7 N" H! [
        .name                = "leds-gpio",3 d) n! {$ c8 o" D" k, `/ L+ ?
        .id                = 1,
: }7 I0 x. K; D* N) U  b        .dev = {
$ z* {" i" z7 s+ o: i9 j                .platform_data = &da850_evm_tl_leds_pdata,
, e( ^8 m6 S0 b5 x- M                .release = led_dev_release,0 s' t# B# W1 ?7 Z2 I
        }. I& l6 |0 @# e4 Y2 P9 w1 E
};
/ O3 {& \( |# K
' r' |- D- e- g8 C/ K* o/ |static int __init led_platform_init(void)& L  R, c" L) u& p- a# e0 |& K1 I
{" z4 h) m8 _3 n6 h
        int ret;
' [  D' f( d5 c/ z4 k#if 0
- v! L( d, Z! v3 \  P        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( ~' ~" G1 S+ P( ]+ ~4 N        if (ret)) U. l% U* N, ?( n8 m
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* u. h8 x( w& z4 Y3 ?0 e
                                "%d\n", ret);
/ w  n5 D7 j3 @#endif
9 t: d% B1 p: W        ret = platform_device_register(&da850_evm_tl_leds_device);  }6 T8 }* k* R0 E5 J
        if (ret)
7 u) ~1 [  W7 N; ]; u  D! i                pr_warning("Could not register som GPIO expander LEDS");
" Q" f& g. ~5 X0 w$ W        else
! y- E$ ^1 K3 c4 A' Q6 Z                printk(KERN_INFO "LED register sucessful!\n");- K1 ]# c* L! p2 o- }3 C2 i
3 b( O1 q$ `& c# E
        return ret;& A  V: k* K$ W* {
}
- f5 i6 r# L5 v: R' L. M% g4 ^) \0 O+ K$ a: F) F3 w
static void __exit led_platform_exit(void)* C# Q6 R/ m8 m+ z/ t  O8 ?% Q0 n
{
/ ?5 D. |- `2 C' x        platform_device_unregister(&da850_evm_tl_leds_device);% {5 W5 ~' `* k
8 S9 R# h4 P" ~/ X& \" C5 \4 }
        printk(KERN_INFO "LED unregister!\n");9 g! S0 y" R5 P- p
}
% ^: V( C" s' i( K* q
" W' _1 ?% p/ s- l9 Q1 E  u* smodule_init(led_platform_init);
& b4 o: S- @# tmodule_exit(led_platform_exit);
* o& X, S6 H) Q& b- ]0 o
* B" i) X: Z2 E' ]" lMODULE_DESCRIPTION("Led platform driver");5 n0 r5 n# x# [; J* D9 s
MODULE_AUTHOR("Tronlong");9 o: n4 y! E  Z2 ^! X3 f
MODULE_LICENSE("GPL");( i1 s% u  T4 l. j5 Q+ o, J! @1 D
7 @: B% e; e" z/ f0 p) X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 07:23 , Processed in 0.042685 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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