程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ o+ u8 u4 B  R  N' m. b$ b
#include <linux/init.h># y1 P* F7 `* V# y; {" F
#include <linux/module.h>9 D) \' N8 D4 f  }3 Y
#include <linux/kernel.h>
! m' Y( P6 R+ E#include <linux/types.h>4 Q& c. g$ a; L  Q' [
#include <linux/gpio.h>. F* [3 o* r: D) E
#include <linux/leds.h>3 j) ~* O/ k- B% A4 R2 p
#include <linux/platform_device.h>4 f/ \3 p6 T! f5 Q: I' m  f2 t4 q

" O0 C8 {2 E( _  s3 `9 e7 p& b#include <asm/mach-types.h>
- A/ l& \$ a$ \  S; {1 w) X" ]#include <asm/mach/arch.h>
! f( x" Q7 N/ m% Y' S#include <mach/da8xx.h>5 Q' _0 a1 T% j( v; c3 D
#include <mach/mux.h>: a5 b, w1 L" l% }1 W
6 F# P3 N! s! C# O
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( V8 f7 Y& z5 x. y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 ^  S& ~6 w6 ~2 C  H
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' j( i' `" x  P; \3 e3 d* _#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 ~" u% H/ s3 }4 G# G5 f  }& h, V: g& \' r, @+ F# t+ m( _
/* assign the tl som board LED-GPIOs*/$ p8 ]/ P# r8 E( E2 r
static const short da850_evm_tl_user_led_pins[] = {2 P0 @6 ~6 V" a0 U$ c6 ^; _
        /* These pins are definition at <mach/mux.h> file */% U& }* X: ^1 _5 c2 h6 B
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: e. v* E1 k* c
        -1
$ O( n# M5 R& _+ I};2 N7 t. ]# i, o' L- T

9 w5 @% C" R8 S$ s. x$ C0 C4 a) tstatic struct gpio_led da850_evm_tl_leds[] = {4 ]/ k, w& J' K  t" ?( j, {% ]
        {3 G" H$ Q5 Y; j' }# P$ Z
                .active_low = 0,) t6 Q9 N+ f& k% M7 o
                .gpio = DA850_USER_LED0,
! T. N% G5 }. X' O                .name = "user_led0",$ i* T7 K$ h( B2 x/ h3 r# ^
                .default_trigger = "default-on",9 \6 m: p4 j& B: M2 B) o5 _
        },, ]( v+ C( T* Z
        {5 ^# ~/ r% d  b3 |- n
                .active_low = 0,* r7 x9 p* q4 r
                .gpio = DA850_USER_LED1,$ W) {- I) G0 A  l% T/ N2 u
                .name = "user_led1",
6 f: z( U9 j- f: U                .default_trigger = "default-on",! t7 O' Y! y' ?6 R; X) p# T
        },
5 N: R* `6 z* H- [. p; ^5 \: {0 E        {
7 |' G  y9 k1 k5 |# u                .active_low = 0,4 r/ z* z% `/ X( U' j; L0 C) i( \5 d
                .gpio = DA850_USER_LED2,% E2 C3 I7 V, g% Z* t. A
                .name = "user_led2",
+ d/ g( K2 ~' C9 j% Z7 N& W- p                .default_trigger = "default-on",
4 [2 o+ d  q) G" h& w        },1 i7 y+ b, n3 I' Y+ m& Y" b- i. r
        {
% E1 V9 T# A3 q: q8 }4 s3 \                .active_low = 0,/ X! X1 A) F! J( m! g
                .gpio = DA850_USER_LED3,
5 k& I5 V* s6 d                .name = "user_led3",
' W- p3 d8 R* @8 ^/ W* t. D$ w                .default_trigger = "default-on",
* [. }2 I( B7 W# `2 J        },9 m8 P' @( V: b- l  B. c& ?
};
% ^6 |: W# g3 B4 o. y& N
- d# W$ T1 g8 C: S7 ~% ~& d. Fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 t* M( b  e. u# V
        .leds = da850_evm_tl_leds,& m/ Z8 g& @8 {% a
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ C+ {( C: G% P: e9 c6 _};
- t% L' w) }! y- t& B1 G; ], e, R3 C  c& B) F7 t
static void led_dev_release(struct device *dev)
$ C6 ?2 E$ F! F2 N4 i{
3 X0 I6 I' x+ W1 i+ F; v};, E9 E3 t. [( }( {

% S3 ^  l9 v% E9 Istatic struct platform_device da850_evm_tl_leds_device = {
* K4 Q3 t# z' p: Y3 _        .name                = "leds-gpio",
" c! E+ R+ C$ ~) K& e        .id                = 1,( O2 h7 b" a) u8 Y& @. h: R" U' O
        .dev = {5 C( P3 r- G1 a# S9 k
                .platform_data = &da850_evm_tl_leds_pdata,
' o; u4 t9 ?/ n                .release = led_dev_release,
# T3 t5 o1 l8 a$ ^        }
. [3 p* |- O- m0 P};
% k) X* N3 [0 n1 D
8 y: l* d" k5 q8 Dstatic int __init led_platform_init(void)% i! o. C3 t6 f
{
2 e( s' Q4 n8 G        int ret;
* |% {# V- Q, e1 g$ O#if 07 U( h2 B  X. l
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 E/ M( c' W4 o
        if (ret)) u& w) s1 K- m+ }9 R
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# y" B, F& N# K/ P
                                "%d\n", ret);- L9 O& r  D$ n; |: |5 ?
#endif
( z! R* {9 W( T3 I0 U        ret = platform_device_register(&da850_evm_tl_leds_device);
  L" I5 F3 n8 U5 G0 F1 P        if (ret). ?; B' o4 ]1 J
                pr_warning("Could not register som GPIO expander LEDS");$ @) r8 S. J$ ^  q
        else3 D/ F% y# q5 n
                printk(KERN_INFO "LED register sucessful!\n");
; I5 ?) [& a8 p# L
' W7 {6 G- o9 m: M: f9 [        return ret;
! K9 d+ y5 J3 \) q}
% m3 s3 V/ X) T$ U; S
6 S$ v5 b: z  C1 M0 estatic void __exit led_platform_exit(void), a3 s4 b3 @  \% y
{" L' Q- u& _; p% h9 U1 L* m
        platform_device_unregister(&da850_evm_tl_leds_device);4 y& |% X! h0 @4 }+ [

6 L5 ?, g$ y3 E        printk(KERN_INFO "LED unregister!\n");
( G+ h# y* b% J3 A  m}) e/ L+ L* }  g6 s9 H
7 m5 e+ S% i: j( |
module_init(led_platform_init);
2 B  y' m6 _. d( b% f; {module_exit(led_platform_exit);
0 [7 G7 M5 k* d, p2 X% X, p' [$ u" s. ]" D* K$ z
MODULE_DESCRIPTION("Led platform driver");
0 ~& P7 T( M& C) ~$ zMODULE_AUTHOR("Tronlong");
; Y  N. V* A* Q$ R1 ~5 Q0 eMODULE_LICENSE("GPL");/ O3 a* u" O! I6 W# e! A

6 b. B) i, v6 R9 ~3 L. ]' ]; J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-8 21:31 , Processed in 0.036823 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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