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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  O7 l% |% a, Q" ~#include <linux/init.h>9 g7 z- `* m# l$ E  d
#include <linux/module.h>
: D4 f) ], o: g, o* }#include <linux/kernel.h>8 g- }3 p7 f# ]: X/ |
#include <linux/types.h># j& ?9 s3 M2 F, ?7 i
#include <linux/gpio.h>  I- X5 i" S- X
#include <linux/leds.h>& Y! u/ }4 w5 T: z& i
#include <linux/platform_device.h>$ `' @8 H- H; @5 \/ _8 Y! G

8 Z- b% i* z" D0 c#include <asm/mach-types.h>
' `3 h# [" J& B2 c#include <asm/mach/arch.h>8 a* b7 N3 p2 o& Q% S
#include <mach/da8xx.h>2 p, O7 |) I8 B. W- V
#include <mach/mux.h>
6 H" z4 N6 u% R0 u6 H
# m! M" V9 |4 m+ r% w3 C8 b2 a#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 O- c0 Z0 D' }" B# e
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  ]( g6 R3 i4 B  `, x- V. w
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' B6 |& Z  r+ d6 Y1 ]* P#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 j$ z& {" g: J3 S. u5 s8 s
( X6 Y0 z$ i, Y1 G% I# V2 t' j% F/* assign the tl som board LED-GPIOs*/9 C1 V; ], Q' H. `
static const short da850_evm_tl_user_led_pins[] = {. V5 x  I  I) m2 p. o
        /* These pins are definition at <mach/mux.h> file */# t( t: t2 m" B" p+ v! e
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 Q: e8 }, j7 j( b1 j
        -1* {- l; K' w$ {# ~4 e% _
};
- O7 n! V* A9 c
; P2 H3 T6 H/ N3 l3 N0 L8 K& o- xstatic struct gpio_led da850_evm_tl_leds[] = {
9 K0 t  J# `8 X' A) h$ k  Y$ v        {
: K& y/ R( E' E3 ], {                .active_low = 0,
4 |: T# o' X5 c+ C9 B8 {  q                .gpio = DA850_USER_LED0,
' o1 m' |! b1 F) f                .name = "user_led0",
; m: J# C8 R0 g0 u, G                .default_trigger = "default-on",
, c/ i. v! L/ t& o- P        },; a% g8 u% U& b, v3 k4 E1 ]# i
        {) T/ c) ?' D0 ?- W" V( x
                .active_low = 0,
2 |' j) k, L+ F1 @% P                .gpio = DA850_USER_LED1,
! V6 U$ M  M( f8 |                .name = "user_led1",- e& l! R1 G. R" L! N* f2 l
                .default_trigger = "default-on",
0 `, Y$ z( q2 z$ c$ E        },
+ G% u; N% K5 o        {! t! ^- a1 W+ W2 X) h
                .active_low = 0,
  O1 D( ^+ |# U) R( ?8 Y& d                .gpio = DA850_USER_LED2,
+ f0 x* B+ T! U" c' |                .name = "user_led2",9 X( }* k0 T# T7 w  i! V
                .default_trigger = "default-on",6 T6 t# B6 W. u, R% y6 M: l" d
        },
; t4 l6 i1 |: ~$ K9 C# a1 G        {
7 F+ F, Z8 K- Q' Y5 p                .active_low = 0,7 m. Y) |8 U. ]7 y# s4 i. E) S0 r0 ?
                .gpio = DA850_USER_LED3,0 ~( B1 t+ f# r* ~  u
                .name = "user_led3",
" {; L, a; L# |0 m) k4 M                .default_trigger = "default-on",5 s8 M  V) a+ N4 A5 [/ D4 O
        },
  d+ K1 o7 G7 E4 z1 I( E};
9 p1 B7 {2 V8 Q, _5 h. j* R5 h; `# {8 k: Z0 H
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! s- R. v. u3 ~        .leds = da850_evm_tl_leds," w  S2 i: b8 C  H/ Z* B( Q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 z2 b1 K; m" U0 e
};
$ F. v! ~& |$ p9 S; s
/ r5 f' _" Q; Z0 n* A8 Q! fstatic void led_dev_release(struct device *dev)/ z$ C1 W/ l+ l2 o  F$ `
{4 o8 x* o$ A4 g" v$ t" S" V# f; v
};$ n4 {3 i+ D# M$ b; d+ N% w6 Z- {

8 O1 m& ~  n' qstatic struct platform_device da850_evm_tl_leds_device = {
+ u1 Z% `- T2 l5 k! B* ?/ i        .name                = "leds-gpio",: Z2 f7 l! _& ^4 d+ E( L; s
        .id                = 1,, U+ |3 a5 Z# q5 ?
        .dev = {* a7 t/ e$ {8 J2 V
                .platform_data = &da850_evm_tl_leds_pdata,- [4 F) Q3 J. W' B5 |
                .release = led_dev_release,3 e6 @9 n* O0 A: T' B
        }. H+ J. x/ B" ?  i0 K6 ^  x0 V
};# z7 @# S( e# e  [" u8 b- N# O% e
) a/ u6 A) X" E/ _1 X( l9 n8 X
static int __init led_platform_init(void)
9 C9 n7 x. g' h& ^{
3 _$ s) y) Z( {        int ret;6 _; I; d! k. `( _$ z
#if 00 e$ e# |1 w1 E) u; _$ }
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 Q; `0 b/ E( ?, z$ n9 Y        if (ret)
: i1 d/ A, w( I' R$ |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 ?7 m: t1 S1 S1 W- F
                                "%d\n", ret);- v3 v0 R% A8 a( @: M5 U
#endif
# t9 Z# z+ f# l        ret = platform_device_register(&da850_evm_tl_leds_device);
8 w! i2 L* u9 ~- H' I        if (ret)5 b' l: _9 a& O& }- y
                pr_warning("Could not register som GPIO expander LEDS");
2 Y( _# P$ e( L3 n: `; L7 L        else: z5 s, j: A# f! V; S& U6 s
                printk(KERN_INFO "LED register sucessful!\n");; v' e1 l7 D+ ?! o
5 M' w4 ]2 Q  G0 `% h( ^9 a
        return ret;( p( K2 t7 Z$ _* F( a( @- O/ \
}8 q! r% l* Y1 b6 m, X# f
. n4 q# ?, t7 l( M
static void __exit led_platform_exit(void)
9 l; y; S5 T$ ^{4 l0 n: m% `  p4 v- g+ o: d2 w
        platform_device_unregister(&da850_evm_tl_leds_device);( B: T8 Q0 \) `3 i, w

) k  {. ?' r  B) i* t        printk(KERN_INFO "LED unregister!\n");
" j+ G+ }: W: u7 f- C2 b}7 C) v, T; s( i/ M; e) _# J

0 I; D- s- n0 K! \/ Emodule_init(led_platform_init);. T( l2 n6 Y- L  b5 @  G
module_exit(led_platform_exit);
- K- ?8 e! C4 R( R& G; V& \' a! C1 z* }6 [/ h. @9 A- b1 Y
MODULE_DESCRIPTION("Led platform driver");
- B( \& Q1 w* J  c4 D" xMODULE_AUTHOR("Tronlong");3 y1 K7 q0 s3 J& L0 C7 A5 e  T
MODULE_LICENSE("GPL");% l3 ^) X% G8 q; ?  @
& c& @  Z6 X: P5 j  @. l- y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-27 09:46 , Processed in 0.045361 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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