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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  p) p- J3 _% @2 T( Z" y#include <linux/init.h>
/ \) Z! |) V- i7 I! A#include <linux/module.h>! C9 `& \" y% O) v, ]
#include <linux/kernel.h>
% ^# {6 u4 ~/ M#include <linux/types.h>
' V. v9 ]$ N3 E$ X' T2 Z1 R5 R( T#include <linux/gpio.h>
4 M  y  R( T/ l  q& W4 C- U#include <linux/leds.h>
( t7 @0 ^) B0 T$ A0 P' h# k$ ^#include <linux/platform_device.h>6 h% S. }: C8 l5 C: J: |, s

' s  o9 T  j3 W; j#include <asm/mach-types.h>
/ z3 ~  A# X$ C, y( X& c4 k#include <asm/mach/arch.h>7 _. W3 G3 \' V+ w6 a$ T! m1 |
#include <mach/da8xx.h>1 r8 a0 D9 ^( U8 C' H+ w
#include <mach/mux.h>
2 X1 |$ ?. \# ]1 p: t% k7 u: N; G6 w, I8 G6 }
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 [& j& Z% n3 k% p' [0 _; O
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ B1 t0 w( G# n  _
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 k0 q$ `3 A, N: V- Z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% d* B/ u8 a' ^. U& s$ C/ e* z) R# X
/* assign the tl som board LED-GPIOs*/0 T1 ]+ N7 O4 B  B# }# l  D& }
static const short da850_evm_tl_user_led_pins[] = {
7 M* _, }2 J7 N8 `4 P        /* These pins are definition at <mach/mux.h> file */
' o2 Z) {% C9 W! l        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 a/ q1 e0 Y. H. D' E6 a/ q6 \        -1
# X5 C# o' u/ j# ~! ~% `2 K};
* P) z2 Z1 K( ]* s
9 a7 z1 f4 T2 g3 G% n1 `8 v/ Istatic struct gpio_led da850_evm_tl_leds[] = {
; z! L' W# I8 N( t( l% F, @        {
' U: v- f' P; g$ C& i& u) N                .active_low = 0,+ i2 X, f1 `' M3 \; T6 [
                .gpio = DA850_USER_LED0,
* E3 o$ d1 C3 h2 ?                .name = "user_led0",
* q2 o. K# O- ~- W* {8 \+ B                .default_trigger = "default-on",9 n; g" Y& _* L3 j, i; U
        },
& T( u6 R+ t0 J. c3 w; B        {
: Y1 ]% h" n6 O& h; q* o                .active_low = 0,
& S$ U8 U7 D6 r                .gpio = DA850_USER_LED1,8 ]8 W3 \+ O# q6 r* W2 W
                .name = "user_led1"," ~. w/ U  s5 s
                .default_trigger = "default-on",1 v0 F( W, O5 I  f6 J
        },
) p0 y* _! A" a1 d1 s4 Y' ?        {
, E( B1 @% D  `                .active_low = 0,6 l( @3 s2 D# c. _
                .gpio = DA850_USER_LED2,
, ^# F; p- T+ Y. h% g                .name = "user_led2",
: n6 f$ o3 ^4 o( H                .default_trigger = "default-on",, d% y9 a4 g0 p
        },- |- l2 A" z& E7 m
        {) p6 |! x* g# z8 Y  F9 D. ]
                .active_low = 0,
# T0 f/ D' {. m' S0 u5 p/ X; j$ o                .gpio = DA850_USER_LED3,4 T1 v5 w/ t+ g. M- L( O5 Z% l
                .name = "user_led3",  [2 F% H' C/ A5 D
                .default_trigger = "default-on",, B  a8 j1 h& u: |! X6 |# G
        },' y% l0 [! e9 N  x& e) d
};$ z+ z& N9 T3 Z' j. o, v

* y& ~6 m8 X1 Z0 p. M/ ?static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- `7 u: S$ o6 u
        .leds = da850_evm_tl_leds,( K0 h5 g3 ]1 s; ^& ^& f
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 F2 k$ g5 G5 _! U1 [& r
};! |5 }( e' J3 y, ^  }

7 E, V; w6 D6 Vstatic void led_dev_release(struct device *dev)
# ?3 J6 P% ~. t! r{% I0 k$ g. ]: m
};5 V" k3 K0 K+ T6 {3 x

, i, D( ~% c# T3 j, Rstatic struct platform_device da850_evm_tl_leds_device = {4 I4 |# F' V( F6 E5 A# h" `, A
        .name                = "leds-gpio",$ j5 q1 R4 h, z
        .id                = 1,, L, f  x* t) [3 [, g# v
        .dev = {; v- h, b/ f( W) B
                .platform_data = &da850_evm_tl_leds_pdata,* q: v  L+ _6 l0 M7 Z7 L$ r, N8 L
                .release = led_dev_release,4 ^3 u+ U8 R9 g; }1 b' J& m
        }
5 W. Z( m4 i' }' \: |; ~};" P- Y8 s5 A& \; [" M
4 m2 P& G) s( r, \' J
static int __init led_platform_init(void)
7 r  z$ o* y2 x" M/ }4 H! z{% K9 {; Z7 s: D( c
        int ret;
  e+ a+ l3 L2 x  n3 o$ x+ H#if 0# K; T) L7 ?; H
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 E$ c3 W3 R3 o0 J9 ~: m        if (ret)3 R- `+ Z8 E6 T0 O9 M9 U
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 F% |1 ]8 O9 A3 P& K8 m7 `% s                                "%d\n", ret);$ F$ K" \' _% X! W
#endif: N9 K5 v/ e7 L8 @- W* o
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 [' Y0 t. f/ S) s4 l        if (ret)
  I) ^5 S# v( E! i) Y                pr_warning("Could not register som GPIO expander LEDS");0 H7 m$ i( s# T, Z0 s
        else" ?, x& ^/ N5 G5 l, C2 y6 `
                printk(KERN_INFO "LED register sucessful!\n");
1 y: R+ {% F- _
9 w+ _5 U. t" ?8 b# w  P/ v        return ret;
: {& l9 _9 r) B4 b}3 T5 X  Q( \8 F; R

1 U, H/ g" \$ X; B# Gstatic void __exit led_platform_exit(void)( @/ A4 r0 ~2 G
{
  H5 q% P1 m9 u1 v- o; `, H        platform_device_unregister(&da850_evm_tl_leds_device);: _" v. p  I6 _& y9 @0 `6 s

/ _2 a9 i, G: E3 E6 @! t7 R        printk(KERN_INFO "LED unregister!\n");' B6 ^6 \/ T" W1 ^" N
}9 [: a- Q! Y1 ^/ a$ g0 I" m
7 _/ @& [8 ?  h& B0 S5 j4 X! k
module_init(led_platform_init);
# d6 x( I' U% m6 E4 Y4 qmodule_exit(led_platform_exit);
; Q+ M' F/ t% P3 E
5 }, E# I: c. E. a+ `7 g0 pMODULE_DESCRIPTION("Led platform driver");5 R" R9 ?$ Y9 s# |4 H  E
MODULE_AUTHOR("Tronlong");4 H: k' J" I. H/ W  d( L4 Z# |0 Q: V
MODULE_LICENSE("GPL");, s+ o1 G8 Z" R) k* f
6 @6 v1 W' k2 I" r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-11 11:39 , Processed in 0.039991 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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