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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 ?* d- b0 S6 i- w$ D# o#include <linux/init.h>! _/ y$ ]8 G& T4 o7 E  r
#include <linux/module.h>
" t: m# @* ^+ _4 H#include <linux/kernel.h>
) Y5 Q" Q! V: f! u#include <linux/types.h>
& Z# V  y$ N' x$ ~9 z4 z#include <linux/gpio.h>3 Y% @$ Q* ~/ L7 g% q# Q5 F
#include <linux/leds.h>8 ]7 h% E! K) R' [
#include <linux/platform_device.h>* r( Z) V# V2 F+ e
( ]% i8 ~! p$ e8 B/ x# S4 Z
#include <asm/mach-types.h>
' x( ]7 s8 G  I( V+ |0 V7 W#include <asm/mach/arch.h>
9 o& \1 ~3 r8 `  q( @#include <mach/da8xx.h>
' v0 @* K$ K# x. N; w  b#include <mach/mux.h>
4 ?$ L: _9 u* s& I9 H6 T9 N' P# O; H9 o' V0 t/ w; i2 `$ k: l
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; J' m( }5 i4 O) h4 G1 \#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 ^1 g- X/ [& v! K6 S5 W#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& o) |! U0 a! D* }  J! m6 K0 l#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 N! L0 M! `& a5 e/ W0 y
3 _( L' T7 [* r8 e, n* ]1 t& K7 z/* assign the tl som board LED-GPIOs*/
# X9 u. G- \+ a; b% a4 Z1 qstatic const short da850_evm_tl_user_led_pins[] = {5 M7 h; u% s& O9 E, q0 \% {
        /* These pins are definition at <mach/mux.h> file */6 |/ m+ h$ i* W1 _& b4 \9 @
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' f( J9 [! l( ]7 c! \
        -10 N, \" U+ `, o. M- I
};; p4 K+ M7 ^7 |* s  Q- L3 k# @- q7 q

* K# K  v- o! P* P2 G" Fstatic struct gpio_led da850_evm_tl_leds[] = {
' }' y/ `( e# ^7 ]1 {3 Z4 ~$ N        {/ Y  z2 d4 ?$ _6 p# \
                .active_low = 0,- ?5 f- V0 S7 h8 T7 w5 z7 l! q
                .gpio = DA850_USER_LED0,
. q- F% J4 l8 n! C5 J0 k, Y$ Z                .name = "user_led0",; |3 P, A# O: ], C
                .default_trigger = "default-on",
/ {+ |" d9 d9 Z# y        },
4 l" w+ \- n7 n2 F7 H; i        {; }6 ~0 O  u( B2 i$ C0 R8 {3 a( x
                .active_low = 0,3 F- O% t' d  ]) K# T/ G9 a: x
                .gpio = DA850_USER_LED1,$ N, q, w; m; N9 V. O
                .name = "user_led1",
; s& e" Y. l3 j" k2 _7 ]. h                .default_trigger = "default-on",
" l: L( A" d* ?) C% l' F        },
$ e% e  H& J) p2 L        {" O3 C; w1 f( F" n
                .active_low = 0,
6 v+ h8 ~2 _1 N; v2 Y( X; @8 _. Z                .gpio = DA850_USER_LED2,
& Q6 H* ~$ H) j' Q& y; D! a                .name = "user_led2",  b$ Q8 n9 E* v5 h3 t8 B/ ?/ |
                .default_trigger = "default-on",
9 C! \5 S# b  p7 H1 _        },
# V4 @3 d; F' H$ n6 N: q        {
* X2 Z, G; d+ [$ x* @                .active_low = 0,
7 n+ D3 ]5 u  C& ^; s6 t) S                .gpio = DA850_USER_LED3,2 `% w: E  Y* ?. I
                .name = "user_led3",' u" d7 O- \% Y5 u. \! d9 ^
                .default_trigger = "default-on",2 x/ }2 J- L" u6 ~% R" m
        },
- J* U1 N/ m, m8 g};
. a2 Y4 r) H  K8 g5 ~  `& m: h+ g3 m8 p. j
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- X) Z8 |  v" q: b: D
        .leds = da850_evm_tl_leds,/ x+ o. o8 {6 M: W& g8 |- L% s
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 ~: R% O, A2 {$ Z* c2 k
};
0 d8 m& l% L' ^5 F$ Z7 m
) a$ _1 M  Q2 c$ Y2 f: k& }static void led_dev_release(struct device *dev)
0 ~0 U7 V' B( B' G3 R{
2 H+ _9 R' h( d};
3 [) ]6 A# S" ~  [/ Q! O: Z) K4 E9 ^5 W- X0 s6 \% |
static struct platform_device da850_evm_tl_leds_device = {/ W2 z2 q6 {; H) L
        .name                = "leds-gpio",8 d& G$ ~: W% g) o/ B8 J0 R2 P- Q  V
        .id                = 1,( k8 ^: N$ H, H2 U9 e/ O
        .dev = {
; z2 j( x5 H" x                .platform_data = &da850_evm_tl_leds_pdata,
! d& f5 ]8 o8 q/ a7 P                .release = led_dev_release,6 b! Q+ K' ?4 r& d
        }- R" n: A' C: V' T' ^6 o5 Z, `& ~
};" o/ X7 K/ n9 W" f* K) G

% p( N* h3 o5 \9 u' m6 Pstatic int __init led_platform_init(void)& v7 ?' j2 @, j5 E) F
{- j4 S/ t: C/ ~  d, I' n5 F8 S
        int ret;# g4 y* V  X# u  P' M
#if 0( s9 E! Q/ i3 Z* G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 u8 Q) z. b- r& D* X: ?1 ?% R        if (ret)6 i9 z+ n  J; x# R  M9 _
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 c5 Z5 [2 d+ U                                "%d\n", ret);
  x! O2 ]! u" j#endif; W6 b0 u9 j. u
        ret = platform_device_register(&da850_evm_tl_leds_device);
/ |9 I4 }% P) {- q, W$ ~6 _        if (ret)
! p/ ~6 N, l4 ]6 ^$ d! D                pr_warning("Could not register som GPIO expander LEDS");
4 Q. `( ^% b( k$ r' ]; W0 h' T        else
9 J: M" M3 E* n6 g3 E7 u                printk(KERN_INFO "LED register sucessful!\n");
! Z* J: s8 `9 `) B# r6 r$ W5 n2 j7 S$ Z; k# s
        return ret;
" X( p: ?& y( f# P0 K. T2 [1 a}
; X: a, t' K9 [9 q) ~1 F( E, Y! O- U; N' j# z
static void __exit led_platform_exit(void)# q9 k) ]: n1 x
{, @) i; t# d; V4 i! U
        platform_device_unregister(&da850_evm_tl_leds_device);4 l1 @0 c6 S+ f! Q8 b7 Q

0 m4 Q+ L* ]8 z% |( V5 c) f- `        printk(KERN_INFO "LED unregister!\n");
$ [. F5 [& \$ g5 L/ g( I}
# J5 [( Y7 f( i3 Y4 o3 M
: G% X- Q, t! \# h4 A) @module_init(led_platform_init);1 v  P6 a, g# s& U4 I/ u5 c. M
module_exit(led_platform_exit);& E$ w4 V! x+ ^- X+ c) S+ y* x

; d5 y" S3 G$ n0 V' wMODULE_DESCRIPTION("Led platform driver");
7 \$ B$ E0 D' B' ~MODULE_AUTHOR("Tronlong");9 Z1 s. M; [% ?$ u! V2 E7 ~
MODULE_LICENSE("GPL");4 `# u6 N3 s/ m2 E# G# [

* n$ ?8 S9 L5 J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-27 04:13 , Processed in 0.065909 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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