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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; l( n0 G$ D2 w; C7 D' L& v9 G( [+ r6 Q#include <linux/init.h>$ m5 m8 z7 y! n$ l# x( \
#include <linux/module.h>
5 ]; z4 r. k. o  k" N/ H#include <linux/kernel.h>
' y+ A+ N# o" ~# |( O8 [; L- b& K#include <linux/types.h>8 l  F2 c! [) z/ c  t' `
#include <linux/gpio.h>& j+ g- ]' l5 B+ V: f
#include <linux/leds.h>* s* J3 \# j2 A2 Z# |) w
#include <linux/platform_device.h>
, l; z0 c; I# x7 ~. L" f  r: G- a9 I# z; F5 g* Y0 y
#include <asm/mach-types.h>
6 S' c6 U& }0 k+ _9 C. }. F#include <asm/mach/arch.h>* B! r  _0 {6 \6 T
#include <mach/da8xx.h>
: o: }, G# @1 u. b( t#include <mach/mux.h>
/ N1 U! `7 \9 o: H
( X. y8 T, `. D- m#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 @3 j% h# K) J+ ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) W' W4 P, M. T
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) O- g4 h7 R' U: Z  S9 J
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 d9 R4 a% v! \- Y  r
. J- Z+ D- p# ?; i/* assign the tl som board LED-GPIOs*/0 x2 D5 D3 ]$ H
static const short da850_evm_tl_user_led_pins[] = {* z! Y- p( a2 H
        /* These pins are definition at <mach/mux.h> file */
* K" e/ \# z( G        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
/ i# v# v) j6 w9 O( [  N6 \) M, E        -1
( l& R3 z6 L/ Z4 U% \};" Y, ?0 R8 f* E9 u9 A3 F( s+ S& k

1 J4 Q+ M1 D+ x: J; `5 M3 P9 R7 o6 @static struct gpio_led da850_evm_tl_leds[] = {0 O. S, \- C* k" ?/ |, {
        {& W) u1 x  t2 Q9 s& Z
                .active_low = 0,. U+ N# T" y- D9 N' g# @
                .gpio = DA850_USER_LED0,# h' i" p$ w# Y2 W$ W8 h
                .name = "user_led0",- e, V- u1 H* z& O4 @
                .default_trigger = "default-on",
/ ~0 l* ?+ X$ e! S& F3 a. N' e$ j* G* J  C        },% v6 j, ~1 v4 Z. z( [5 Q/ c
        {/ [+ R! l- X8 X; u- a
                .active_low = 0,
9 P& P3 o7 D( q- K, v% M  Z                .gpio = DA850_USER_LED1,3 \. k$ l: x6 V' w+ v+ ~
                .name = "user_led1",
9 a$ V$ w' T: U( Y" W3 B                .default_trigger = "default-on",
  Y! O  o- H' N! n        },% v  ^5 S  @. ~. g. a. U" ~+ F
        {7 x6 L3 ~2 t9 @
                .active_low = 0,1 h' R: s4 |% d0 f5 C' u% d  P2 G( l
                .gpio = DA850_USER_LED2,
  Q( X2 j& b1 \0 d, F) v                .name = "user_led2",3 u! n3 r6 Y; r9 a5 r& V
                .default_trigger = "default-on",
' U5 x1 [8 A6 f+ ]: z        },
) O/ H7 g& i9 Q+ M4 y% }- g        {
; Z5 L6 s4 n+ \5 v6 h6 k                .active_low = 0,
$ P) _7 p( g" H8 d                .gpio = DA850_USER_LED3,& K. {2 I5 e& F3 `3 l. J& o
                .name = "user_led3",; h* z0 E1 O- I6 t7 }' p
                .default_trigger = "default-on",
' F7 ~+ g4 v! {% y        },6 k5 t1 f  w3 \
};, z1 D$ R# q; q, d: f

" l5 Q( X( [$ G9 tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 L( F1 d. Z$ Y% b7 E* c4 U4 M( q. |
        .leds = da850_evm_tl_leds,
4 J7 J# g8 \7 o* F2 Y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ J* @) \' Z% r. W, F9 ?7 O};' L' d' [- Q$ D5 `/ c

4 U+ Z8 K% O  `" E5 |7 C9 _static void led_dev_release(struct device *dev)0 @4 u# }0 a5 e" h6 R& R4 g$ g& D
{1 d4 o+ F1 R$ ~$ [% F
};8 T) K8 o5 \- L
3 o( E! A: Y. m% I  b
static struct platform_device da850_evm_tl_leds_device = {
8 }/ O6 |% H4 L% J) O- p        .name                = "leds-gpio",2 R6 ^# ?* U5 D. P
        .id                = 1,+ F& z6 S. t4 o% s
        .dev = {
1 x' p+ @: a, Q4 }9 O7 R9 M                .platform_data = &da850_evm_tl_leds_pdata,
3 _, O6 R  {: l0 r# W" S) s                .release = led_dev_release,
, T( e5 Z- c  e* i4 c1 i, h        }( F/ _) p* \# r+ s; T" I7 @: p6 U
};" b6 K6 |, A5 Y* u3 I
2 n% v6 v$ f3 z  x8 E
static int __init led_platform_init(void)
5 N* o2 w# _2 y5 F: _  A{0 A& m& z+ M+ B) U' f; P# @
        int ret;' n' F# r6 y( b( Y) F: h0 r
#if 0
% g3 ?. d- S( k+ L  u4 G, y  `        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ f8 R2 d' k* V8 {
        if (ret). k3 F7 _3 ^2 K1 e3 y4 S; t, l0 p
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- O' _1 L$ l0 v
                                "%d\n", ret);
% y, V( \6 X* U: {% {#endif( M0 j7 c2 W9 ~
        ret = platform_device_register(&da850_evm_tl_leds_device);
$ b0 ]4 d9 n. X- L        if (ret)
. b% D8 ?/ g% t/ J& c                pr_warning("Could not register som GPIO expander LEDS");
$ C$ y, u$ W9 o# C# b! y8 x        else
4 j8 e' y, A7 m3 g* ^+ [                printk(KERN_INFO "LED register sucessful!\n");7 B4 c- p( r9 C

3 z  B- n5 N8 U0 `  N7 F9 D; W        return ret;
! T% Z( q0 C0 F$ K+ G}, m) H9 n9 v9 q( d2 v

6 S8 v+ o( T' D3 [static void __exit led_platform_exit(void)1 y; j% k5 W1 d2 n. w
{* h$ s' o* o1 T( J/ v9 L1 |1 f
        platform_device_unregister(&da850_evm_tl_leds_device);
# M6 |4 H! Z5 R$ U; L% V" ?" x7 M8 E0 D8 S
        printk(KERN_INFO "LED unregister!\n");
  U: S; L" K2 K; A}6 A  ?( v* {6 Q3 O4 z$ h
) W; w- t! @/ n
module_init(led_platform_init);
5 ^3 b" s, w  lmodule_exit(led_platform_exit);
& p9 U5 x3 v( @* u( G
  A% |. {0 p" Z. E8 W2 I  oMODULE_DESCRIPTION("Led platform driver");$ C" b3 v  t1 ?; ?0 f) B
MODULE_AUTHOR("Tronlong");
6 q1 s9 d* u% d5 E% [MODULE_LICENSE("GPL");. Q* d' Q; p$ w4 R  }

. b% H8 n, Q- X2 m; l% h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-20 14:43 , Processed in 0.038928 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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