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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 X( P! u- B% Z0 k
#include <linux/init.h>& E4 V, b& t" k8 W6 R( J
#include <linux/module.h>- t4 r7 Z) R7 t% g
#include <linux/kernel.h>
( @, b3 `0 U+ [5 X( j  \# z- a/ t#include <linux/types.h>
' M+ \4 j3 U, L#include <linux/gpio.h>. W5 r/ X# j0 }9 u/ r/ m0 |
#include <linux/leds.h>
8 b2 i' S5 v) Q. B. N: Y1 |#include <linux/platform_device.h>* r! Z6 R1 `4 z7 G# h6 u& V+ Y1 }9 x
, M  ?# ?9 V& i
#include <asm/mach-types.h>+ H' D# V5 C! a8 M6 S& ]  O9 V& L
#include <asm/mach/arch.h>( ^/ X9 S  S; ~, M0 {/ l& N4 j
#include <mach/da8xx.h>
2 c: ?6 _/ N9 Q0 ^, o6 k& q#include <mach/mux.h>
3 z- ~: A' \" l5 z( @- s0 t8 |6 y% {( Q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: V# _  A5 [/ K; D/ ^#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" e- h( B9 j4 X8 @* A  a#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, ~' @1 U& q$ u7 R% P2 j#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 Z) |3 o( N; r9 A  t, `( M- u) p
# y" C' Z! A6 i2 \0 G, k
/* assign the tl som board LED-GPIOs*/: w$ r! \( x' M6 t
static const short da850_evm_tl_user_led_pins[] = {
4 o; v: X; a/ p: _$ ]' c+ ?        /* These pins are definition at <mach/mux.h> file */. D4 H1 T3 @; t6 u# [5 m
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' ]+ a* c7 v, Q, t( j: k# X  r
        -1
6 n6 N" z1 B+ x) c$ q};6 a. t* y. k+ A- }9 Y% i8 z

3 u  E6 s) f; Xstatic struct gpio_led da850_evm_tl_leds[] = {
# ?- _% v3 I8 D        {: C: q1 y" ^/ z6 {' F0 ?, Q
                .active_low = 0,
- K( r7 \+ w; A3 V3 b- o: L+ O                .gpio = DA850_USER_LED0,
% M4 x9 R' _# S3 z  X1 D% c                .name = "user_led0",
8 W1 E3 N3 d9 h1 z- Y( s+ M                .default_trigger = "default-on",
* u$ l8 h) q' V8 v( k: N8 h        },
4 y( N* k7 q3 j. d$ T; q        {' k. }  w% N' X! Z! ~5 T4 E# h
                .active_low = 0,) g3 e  A; S" R# J! k
                .gpio = DA850_USER_LED1,
9 u3 o1 w5 H  V4 n* K5 P; R                .name = "user_led1",, D8 f2 E$ a$ }; b# Y, [
                .default_trigger = "default-on",
% n0 {! s$ S' m# J( _        },
! h7 h* ~2 y  Y4 C$ [. e, e        {1 m0 |' H; L/ a5 q( W' z) e
                .active_low = 0,
) i2 W7 F# S* Y0 b0 N9 ~+ d                .gpio = DA850_USER_LED2,
& n+ r  }, T! [: `                .name = "user_led2",8 ]% B  X; K3 C' l6 I
                .default_trigger = "default-on",
' ^6 h" P2 Y: a7 H, U        },3 S3 V' T& X: x7 u# _& F/ _+ r
        {2 `( z9 J$ L  H# l1 b& j; Y  _
                .active_low = 0,# O2 _. h2 r! n5 G; e( D
                .gpio = DA850_USER_LED3,
5 v; o- Q  l$ d0 p2 r9 s                .name = "user_led3",
( O/ n9 k0 D0 d" P- r: N                .default_trigger = "default-on",( m; a1 l6 q0 L6 D7 \
        },
' r# `) {& g0 g- K8 ~, l};, U8 D# T: T- ~; a0 M; i- `
+ f$ G0 i9 g; u1 Q0 w
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: L  o% Z2 r) `+ S        .leds = da850_evm_tl_leds,, M. T* F/ z/ F
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. \  x# m4 r9 x};
7 `* R" W; Z7 U, ^8 ]% s. c" Z$ T' I3 y0 n5 }) e
static void led_dev_release(struct device *dev)
4 T6 L+ Z) d& s{
1 E; [  X. y. i- R/ x5 M6 s, K};
1 o' N( l7 K9 r. a7 K: }
) \' Y) B5 d8 P7 ^; ]" ?static struct platform_device da850_evm_tl_leds_device = {
. G) K% \8 I5 ~# Z  n$ t        .name                = "leds-gpio",
4 `9 i$ Q$ W* M) r1 _5 P  P        .id                = 1,+ I4 D$ [3 @6 [/ E0 k$ \  _0 R1 P
        .dev = {
, z2 o2 h2 i( q; N' z0 z- H/ I                .platform_data = &da850_evm_tl_leds_pdata,
2 I; k# s- ?% i3 g& ]  ^                .release = led_dev_release,
! e- C6 U0 a( l+ [! k        }
* \7 d* T) b: X4 I6 V9 Q};( A* G' z- \7 [# g# U. `

. g; }% V6 e7 Z7 Ustatic int __init led_platform_init(void)6 z! b; M( R. g8 \& H! h
{* z+ u" u& t! E7 O' H' I2 o, t# _
        int ret;
- t, X3 P* L' f* ^" T" H3 R( X#if 00 J. `; _. A2 ]& b% H( |
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  \/ }5 A, P- T! z' t) U  f
        if (ret)
2 s! J. ^: Z  L  p# |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 K  h  O; f2 V
                                "%d\n", ret);9 P9 k  c& Y% M( t% J5 [$ [
#endif
2 g( P6 I& u( A8 e5 i4 T5 p& D% m        ret = platform_device_register(&da850_evm_tl_leds_device);
  N4 y. h+ f: e        if (ret)4 C# O) y8 n; G, P: s
                pr_warning("Could not register som GPIO expander LEDS");
( X# ^1 \2 i6 d' ]        else2 ?, D8 k2 k6 y4 ?  f2 {: ?
                printk(KERN_INFO "LED register sucessful!\n");9 k. b3 h, `7 ^0 b6 ~

4 X& {- Y' F0 |        return ret;
. [9 j6 j" u" D+ s1 w8 a2 \% y}
. Y) e& ?1 W) R- \! P* F# h9 `% W7 y
0 C# `) h* j" w. I! n  a0 xstatic void __exit led_platform_exit(void)
- T" |! ?5 H9 w  X{
4 [; g4 N* t1 ~6 v8 S7 m: X        platform_device_unregister(&da850_evm_tl_leds_device);! r- L8 ~$ y2 W' q% W2 [6 S- k5 d

2 k( Q, D/ ~0 u0 I" l2 y1 s        printk(KERN_INFO "LED unregister!\n");
, F. v' f7 k' i& W}% |+ `0 w3 L& D; z$ ?5 G" R2 V
6 G3 P% A% z3 C# e5 Y6 d
module_init(led_platform_init);
0 a' x1 `+ Q; r+ m& [module_exit(led_platform_exit);
# X2 J5 H) n' ^5 `+ d% P8 {# P1 z4 m% r- U4 v, ^# v6 C
MODULE_DESCRIPTION("Led platform driver");
4 M+ Q6 ~' x3 S, f3 o  DMODULE_AUTHOR("Tronlong");7 J8 b3 ~" L: D
MODULE_LICENSE("GPL");
$ p& q. M" h. |+ t$ h7 K
# g0 P; w6 J1 n* I# t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 01:51 , Processed in 0.044828 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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