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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: ?' f! f; r/ \" S! i( d, g#include <linux/init.h># t) B; Q2 i8 e  [
#include <linux/module.h>2 y8 G" X& J% h. b! ^; g; z( Y  A5 M
#include <linux/kernel.h>/ F; ^6 \9 J5 F) `
#include <linux/types.h>6 ~% T, I8 G( z: H6 `
#include <linux/gpio.h>
3 Z& K; W. S* H3 S7 X7 p#include <linux/leds.h>
, s2 T! q% N0 v1 j#include <linux/platform_device.h>
4 C' V6 u" f, |  y; }2 ?
2 u4 Z( i- ?% @( [& H#include <asm/mach-types.h>
- D' p9 V' y/ c, f#include <asm/mach/arch.h>* n5 ]' g; j: ^" X2 F
#include <mach/da8xx.h>
6 ]$ E# N1 \) v7 q#include <mach/mux.h>
/ z- Z( S! ]" H/ M2 l) _' i3 B: t9 O" p5 |( t' g8 H
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# `. f* @  F9 G9 L- R
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( z6 k& L5 w  H2 J+ k4 g6 R0 |  O
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 t( J9 J( i% s! _3 K#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" [) {4 c8 z7 l/ o! T

5 p: `0 ^( e& @' D1 I2 |/* assign the tl som board LED-GPIOs*/
9 k  X* J, p3 A. t1 ustatic const short da850_evm_tl_user_led_pins[] = {
5 `# y9 i7 C# l+ U$ P# X7 t6 \        /* These pins are definition at <mach/mux.h> file */6 ^+ ?3 O- F- ^, a1 [
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' H( G6 i5 P2 Y# `- [- \+ T; j0 p2 [        -1& n7 A3 _2 [: n& K: N$ H* U4 X
};
4 s% o- V( n8 u( c) Q; v: F
, B* U- O+ o4 v5 t8 z& D  Astatic struct gpio_led da850_evm_tl_leds[] = {# f" m+ }# V( H
        {" o. }5 d8 A6 G
                .active_low = 0,
- b4 ^+ U4 e2 T1 l; k                .gpio = DA850_USER_LED0,$ G  O) q$ t3 V) K
                .name = "user_led0",
2 ?+ C1 p* B1 ]1 Q8 P" p( k/ w                .default_trigger = "default-on",# [* e3 L. s; u# `* l; p0 p
        },
8 F! Y7 ?/ N- N6 F2 D( J        {
0 R, O$ p" ?/ @, n9 q                .active_low = 0,
9 w% L" [9 r# C. R  o1 |8 n& T- q                .gpio = DA850_USER_LED1,
& ~, H! D; J0 E8 ?) ^: d9 ^                .name = "user_led1",
- Y- w9 Q3 A" X2 G* [. H                .default_trigger = "default-on",
/ R7 n% P' a: w- x" ~# o3 k        },
+ Q4 X7 Q  i! r+ _+ H' ^        {3 p9 @0 g$ D( v. T$ F. i# J5 [
                .active_low = 0," @, h1 ]2 b* J0 r
                .gpio = DA850_USER_LED2,
" x( M! C7 g2 ~" ~9 ?3 l" o                .name = "user_led2",/ Q; U6 O$ T/ y
                .default_trigger = "default-on",
4 s9 p6 N( t9 @        },7 }( l! ^3 ^2 _! P
        {8 N& o# O( \. _, F
                .active_low = 0,' C* C1 B$ e) K# N
                .gpio = DA850_USER_LED3,: Y  B! t" z5 i! u* v9 r3 S
                .name = "user_led3",9 ?9 E$ V: x  B+ m
                .default_trigger = "default-on",! L6 M  H3 h: L/ ]+ B8 k3 Y* ?8 \
        },
! N) X' n8 l- _& G};
; \9 Q. [# l1 K/ S7 i1 o; _/ b, [2 i; Q0 d2 K2 \. T
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 u/ f7 f- I0 c: U! s4 L* c        .leds = da850_evm_tl_leds,
+ Y" w: M% d0 ^' Y, k; b        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 x' w/ ]4 A. x4 C4 ^; C2 y$ w5 E
};
/ ^7 a' G! |& W+ \- S8 l$ @) r+ c( q. |1 x  J2 r
static void led_dev_release(struct device *dev)
- g7 u- F2 _* |# C* s# r{
" O9 ^' D# }5 R0 w6 U};
' t6 u5 @: `  K, a0 {4 t! d. {3 X
static struct platform_device da850_evm_tl_leds_device = {
# X) G# i' n! D% }        .name                = "leds-gpio",
# V) e; Z7 q5 A        .id                = 1,
8 c7 l6 ^. k  |' _/ C/ m$ {1 u        .dev = {0 P* j. M- {0 z# h1 A) Q& H
                .platform_data = &da850_evm_tl_leds_pdata,' Z3 h! E- n$ t5 E  H  C
                .release = led_dev_release,
+ ~+ {( n/ V) p  _: ^, F" m        }8 ~( Q: n/ a' i; C8 n5 P; m2 q
};
! ~  O" Z. F, B5 m  a0 l# q' U" x' ^4 X) ?) A8 I
static int __init led_platform_init(void)
6 n2 I- I7 i# D+ W: d{
6 [4 I( g$ _/ B! k( C$ [        int ret;8 R/ R4 P% w6 B6 Q
#if 0" i! D1 o( W* g+ l3 s
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* k4 j$ z+ q  T( p
        if (ret)
# S3 [4 G( S" @5 Y; {6 c. s9 d                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 u7 m, K, I9 c6 e+ x) `$ ~- a# ^- a
                                "%d\n", ret);
& |( _) e" ]& l' L4 b! V#endif
6 w4 [; g, Z( `1 P; a% }        ret = platform_device_register(&da850_evm_tl_leds_device);) i% {  d5 C& D# V& \$ O( o
        if (ret)$ @! h0 o( q' w6 }- ]* ?  F, q
                pr_warning("Could not register som GPIO expander LEDS");) u; O# V+ t0 x, s9 ^0 s4 Q
        else
* G, q7 r4 t8 p0 p8 U                printk(KERN_INFO "LED register sucessful!\n");1 k$ w) U: [7 Z6 L$ U- f; ^0 H

. U$ L5 j" ~* r* l  D        return ret;3 k6 |9 V1 M3 N
}
9 v1 s. B# j9 m1 z6 M/ T! t# _( F+ u! h0 O/ _- o! s
static void __exit led_platform_exit(void)
8 E0 t" }& }! ]0 j" L{& w- p. P# o% \  K1 _6 \. Y
        platform_device_unregister(&da850_evm_tl_leds_device);
0 m' _. J! N8 B3 c, g
& e7 Y- R6 T6 x6 U8 ^        printk(KERN_INFO "LED unregister!\n");
# f2 L  r% l. P. K}7 |0 q. J. k' Y  j. z

0 q9 v- t: a1 |( r, dmodule_init(led_platform_init);" \& }/ a9 f+ ~0 @
module_exit(led_platform_exit);
# y2 ?3 Y* o; h( ]- \6 x- R- S2 i4 K0 `# L& x$ A, z) w
MODULE_DESCRIPTION("Led platform driver");
" [- |5 h- y/ u  u( }" }MODULE_AUTHOR("Tronlong");: D9 \( V& z9 Z1 q
MODULE_LICENSE("GPL");
+ V0 Z/ T* g7 J0 b* l' o+ h& n* Q" `4 Z* f/ V4 c' l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-3 19:20 , Processed in 0.039908 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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