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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: h; M. h4 c1 i8 u' _7 J7 `8 h#include <linux/init.h>3 w; r; \- d9 Z
#include <linux/module.h>
6 D7 j: b2 I* x% q#include <linux/kernel.h>
0 M$ W' E, Z: V7 G6 a7 X6 v  W; k#include <linux/types.h>* w; J4 k- r3 n, s
#include <linux/gpio.h>
/ {7 Q. B4 K' f7 _9 z#include <linux/leds.h>
2 @7 z- S% `1 Q#include <linux/platform_device.h>  _$ a" A: X: z4 c& g2 g

/ M" V) J& ^' R) C: k  o; ?#include <asm/mach-types.h>
  @/ |% M; C; b' s#include <asm/mach/arch.h>4 ]" ?. Y( r+ C
#include <mach/da8xx.h>0 ^5 t9 H9 q  F5 \6 C
#include <mach/mux.h>
" O8 V; a8 w2 g$ Z0 G4 ]
- {  q/ p1 F: F5 l( f! |/ l% Q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ s; n; \7 u$ G, P. R' S4 A. s#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 s0 e1 T8 M' V' U' g#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): E% k2 Y' I, _" F, X0 ~# z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ |/ h2 ^3 H' L: \

# g! ^( x2 z# |! {- P9 M9 ]  e( r/* assign the tl som board LED-GPIOs*/
8 B6 L+ H; f3 n- Dstatic const short da850_evm_tl_user_led_pins[] = {1 M: Z/ d5 s4 l$ Z* P) E, G# v
        /* These pins are definition at <mach/mux.h> file */
: i0 t. H/ m, `4 }  J: l        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 f  o  M5 D& e
        -1
* w3 W+ ?& t; E5 E& j) ^};
2 H  l2 q0 s% |% p# ]
: d/ A" O- X5 q" d/ m4 |. M, ystatic struct gpio_led da850_evm_tl_leds[] = {% h/ `/ G: U" q' t
        {# t, x* M( k# _+ D8 ^9 K3 |6 S/ w
                .active_low = 0,2 t" l: r: O' |! {
                .gpio = DA850_USER_LED0,! I  i% E9 j  w: J. Z7 S' K5 N) `
                .name = "user_led0",
( Z: a* g" k- Q: l7 C+ g6 w$ x                .default_trigger = "default-on",
. a# X; o  c1 {9 ^; Z$ }        },' c0 B5 `6 m7 r( R$ e& N
        {
; L" j9 G) w) u, X                .active_low = 0,9 L- B2 l' N: t3 r& U% y& ^
                .gpio = DA850_USER_LED1,
$ F: U5 u- C/ b) N4 M                .name = "user_led1",  p% F$ R, u# f' R# B+ ]
                .default_trigger = "default-on",0 [- `$ j5 G8 w- R* ^
        },
0 F( ^" [* V+ u2 a6 X% C        {
( v  R$ A, {7 ]3 s" A: _                .active_low = 0,
; u0 C* \, u1 \9 {6 o4 b, \                .gpio = DA850_USER_LED2,9 g$ g  W0 _$ Z
                .name = "user_led2",
9 X1 j. \& ~7 M$ @1 k4 F: l                .default_trigger = "default-on",
# r# K$ Y. s; c; z9 m( s        },
! T2 J- l/ R& o) Y' j4 J        {
& V' Y4 |; x' H* M                .active_low = 0,
2 h  ^1 L, B7 I0 S% M* g7 U                .gpio = DA850_USER_LED3,
1 T, }! n) P- ~, u. }                .name = "user_led3",
7 _4 ]$ W* T8 t3 N: d$ b$ T% r% G                .default_trigger = "default-on",$ ~4 B0 C( r0 i1 r( A: K
        },
& ?! r7 ~9 k4 N};
0 K8 K- P1 E9 G1 z
) s7 B1 m( i% r- {7 P" jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, i: i' k; o4 f' U$ V' n5 [4 t1 u7 m
        .leds = da850_evm_tl_leds,
( T2 a* H& i! B0 Y0 v        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 q9 R$ X3 a2 Z, E};% v) T0 N! z0 x( _' L( c
1 o0 p$ M' m- ?9 \: x
static void led_dev_release(struct device *dev)
1 z& h+ d7 f  W{0 m  E  X+ V1 y0 Z
};
8 X' ]% Q1 I# R( p' i3 H; P. x" A& r* J) J2 g
static struct platform_device da850_evm_tl_leds_device = {
/ k3 m5 C$ d7 Q" g/ T        .name                = "leds-gpio",/ x- H1 ?; d/ d9 X9 @9 V! G& A7 f
        .id                = 1,
0 ?; r# b  \8 v! o' x5 Y! Y7 E        .dev = {+ P: w* t& y5 o4 t; E9 }; r# v8 j$ o
                .platform_data = &da850_evm_tl_leds_pdata,
5 L  T# U1 Y& V* n) r                .release = led_dev_release,
, |/ X1 r5 c: l6 a+ g9 t        }5 h* ~5 t5 P8 Y8 R
};
1 G8 _8 G$ R2 }$ X9 Q  @% y: m: u8 f, h3 R; m& {1 ^" q
static int __init led_platform_init(void)
7 r$ R7 N# O& Z# y( D5 L. M{
% i4 G5 ~6 I7 Q: t# m/ T- S1 i+ l        int ret;9 H% x6 B- t- P! w
#if 0; Q$ `* k" C6 s7 {0 Q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; w' j' k! e9 q  F, |# i' u4 F6 T2 \/ O
        if (ret)5 q9 `0 k! @) x4 B/ u
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") ~3 C# t: \+ ?
                                "%d\n", ret);! n, y0 D9 p# D
#endif
1 ^% n" ^/ |' A% H, z        ret = platform_device_register(&da850_evm_tl_leds_device);
) r8 \1 _0 [8 j3 _, b9 @! k* j5 |        if (ret)1 L! [" v' q, \% y# f
                pr_warning("Could not register som GPIO expander LEDS");
4 c* \7 |4 k  X5 ^8 |        else: A& T3 u" M$ t" Q
                printk(KERN_INFO "LED register sucessful!\n");
2 o& i0 R6 W3 P3 Z' r0 A$ Q3 U) b, T* a- o5 w9 @6 y
        return ret;
: @9 B" r2 F: P% h* t  N9 R}- X" _/ l9 ?' r3 z
. U, i6 J7 |4 g' o" t
static void __exit led_platform_exit(void)& g5 k! T% p4 W1 p; v  r9 `* J
{
6 Y5 Q0 V2 Q' j9 Y        platform_device_unregister(&da850_evm_tl_leds_device);/ k. g3 M* {) B- x1 r
$ p' S7 A( b& E3 l
        printk(KERN_INFO "LED unregister!\n");: P5 z4 \, y! D
}
8 a; ^2 X) K: }, F
# @+ F0 p* _$ h0 Dmodule_init(led_platform_init);
0 |4 ^4 p' d" I  B' q) jmodule_exit(led_platform_exit);
' x; m6 X$ c$ O3 b0 q, \( ^$ w& J1 M) T! i. Z- E1 o
MODULE_DESCRIPTION("Led platform driver");6 N/ r9 C8 `- @# d6 |6 {5 ~  ?
MODULE_AUTHOR("Tronlong");* \  j7 P9 ~, E3 D% J9 s8 ?4 f
MODULE_LICENSE("GPL");* K" I" `6 X: H4 k$ g9 P% n

/ E1 }& L, y! V0 L. o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-12 04:28 , Processed in 0.040179 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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