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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* R5 x& Z. w9 \( b' c
#include <linux/init.h>
- X1 T! [2 B- h! I+ N#include <linux/module.h>
& m8 ?: U& P: {' g% v* D#include <linux/kernel.h>
& D# p* ~% }/ L: r; v#include <linux/types.h>
6 ?9 [/ {* r9 T#include <linux/gpio.h>
, G/ L/ ~: |, u: U#include <linux/leds.h>  T3 D- }  V4 v7 ]  l$ j
#include <linux/platform_device.h>
+ h0 E9 ^4 T# v7 \2 j' p% N8 f. a! @6 X. _
#include <asm/mach-types.h>4 h  s) c$ ]+ v3 j4 ~
#include <asm/mach/arch.h>9 Q) A; d, S6 F7 U% o; m' V8 S- T2 a
#include <mach/da8xx.h>& u  _0 `1 v. O# E* U$ L
#include <mach/mux.h>
! y% ?- ~$ L  V* D6 V7 Y/ B5 T% F7 V: a; H. l0 U! h& T7 C
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ c4 W/ w: k6 w% K, T) m#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 E# t* R+ S4 h3 C) W#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 n! O1 ~) C. ?; D. x- e
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 q1 \* g7 |5 r, V
1 W' O7 k9 i! [+ u* ]1 ^/* assign the tl som board LED-GPIOs*/
" j* i! i% B7 D% Estatic const short da850_evm_tl_user_led_pins[] = {
& C) H9 Y! G9 a& b/ V        /* These pins are definition at <mach/mux.h> file */
: w6 i/ a+ x) Z$ [' @, o5 R% }        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 ~; I: p4 v. \+ E
        -1
" _% x+ y, ?! E+ y2 W. Q/ x3 [2 J};4 p1 D6 g  y& D, u# z

/ s/ X. u, B  N$ rstatic struct gpio_led da850_evm_tl_leds[] = {: Y+ m! e7 U! W) J3 z4 ~
        {3 H7 Z/ ]! c* K' y
                .active_low = 0,
( v. g  E* \  b0 u  I                .gpio = DA850_USER_LED0,
4 l4 z( R+ @+ |* r$ _" a, d                .name = "user_led0",4 R6 U9 g& X6 ^8 N; n# ^) [
                .default_trigger = "default-on",
1 z/ _* u! X# J) J$ E* L* Y* W        },; ^4 b6 C3 T# p
        {
1 {/ u5 D; U7 V4 @' ^1 |( r7 n7 S                .active_low = 0,
: s. y3 a" ?( E3 x: y  k$ b! U% f                .gpio = DA850_USER_LED1,& p2 i" u6 o1 J$ O) o
                .name = "user_led1",4 D5 K) [- k0 e  P' S4 s! x3 l
                .default_trigger = "default-on",2 W# q' l; G  V5 r( b3 l% ?1 o' E% c
        },
3 C1 C- l: N. g* l* R3 ~$ j        {
/ f* Y, u4 v" L* g                .active_low = 0,: P3 O, e* v( x% H* H
                .gpio = DA850_USER_LED2,
/ T" G5 m3 S8 z+ @                .name = "user_led2",
7 T5 Q( G- P  O1 @: E, T5 s& n! s. g                .default_trigger = "default-on",7 A3 G  G# ?: z% i! Z- e5 ~% B
        },
) P, r- Q6 w6 d! i& o( e        {
3 _0 t8 Z; u6 `" P; @5 e                .active_low = 0,
1 _- \6 r6 o' Q2 E, g) t0 A                .gpio = DA850_USER_LED3,
( O# e# R0 A. @) W( |; B6 X                .name = "user_led3",
) h, l/ ^$ w# O. J/ S+ j+ T) \9 p$ u                .default_trigger = "default-on",' ?2 U% h" ]; z* i6 u
        },
  ^# X; q; y. ^$ j% c};1 i" u. {. J& z  w& L9 t/ T. H
3 K7 f/ C7 o4 `9 o# U& K
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! r2 C4 }4 D. N        .leds = da850_evm_tl_leds,% y7 X9 m. V9 s" q$ N
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# C5 w! V7 M8 \4 U
};
9 D3 w* i  G7 A
9 `) b5 S* Y* Pstatic void led_dev_release(struct device *dev)$ H. r3 ]" ~. F  V+ m
{" k8 F  E& @/ m
};
( e* A( g! i. v( A8 i9 |& N6 h5 T
static struct platform_device da850_evm_tl_leds_device = {# [: ]* p, o. k; \
        .name                = "leds-gpio",
# P2 s. ]/ t$ g" B        .id                = 1,
2 d; M  @4 H/ `* i: e        .dev = {$ ]4 k7 }. v9 F  o, I
                .platform_data = &da850_evm_tl_leds_pdata,
- I3 t7 S8 c! \+ p                .release = led_dev_release,
& d' d& o  v& v$ I3 p7 u. s% X        }) F' v7 z9 i$ }8 `. @/ i
};
5 p, y. ?- h& g; }  Y  ]/ r: I; ~' M- i9 _/ ^
static int __init led_platform_init(void)" U6 Y! i: ^, p: G/ p
{
: b. b1 P2 _. |+ k        int ret;
4 G+ R' _$ c" V  b) K9 G#if 0& P" Q  a  Y3 }6 o& G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: B; W* O, F- _6 g- x) T        if (ret)7 d5 ^5 d4 d9 a4 l# F
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ L$ m1 N% r" V! W: R                                "%d\n", ret);0 D( |, F1 N" ~8 j2 f& _) }
#endif
9 {! a/ F+ p2 l' [9 n        ret = platform_device_register(&da850_evm_tl_leds_device);
0 J5 |9 G  B# }4 Z4 D9 n        if (ret)# {5 U' d) p8 H7 s$ D8 ^8 R
                pr_warning("Could not register som GPIO expander LEDS");
2 b& i/ P8 h& A; i0 f. l        else
! r% e; f: J$ ?5 z8 M: i                printk(KERN_INFO "LED register sucessful!\n");& J" ~  n( q5 z+ o2 b/ y  y# z
# S0 R4 M0 n, j2 K8 @0 a  X7 H8 I
        return ret;
7 Q0 W3 P6 T) \! r: f' w9 I}& t! A& \; g: z
1 f: o# Z2 l) o; K0 I. G
static void __exit led_platform_exit(void)+ L( U  \' P: @* f$ h: ^
{: }+ U+ I' @$ i- \- {
        platform_device_unregister(&da850_evm_tl_leds_device);
- W& U1 y% ^; w% z, A
9 v* S1 |! u9 F; A        printk(KERN_INFO "LED unregister!\n");
2 s, I+ s, F' ?2 y}
* b6 C' ^" D0 t2 y! G" M- g5 |' [- z7 z0 x3 ]# |& K
module_init(led_platform_init);/ d) z8 R4 o% \- S% Z) e
module_exit(led_platform_exit);
  Z0 x. I; y/ u1 H% `' z
$ Y& a0 \0 ?7 ?/ F5 o" c% b' cMODULE_DESCRIPTION("Led platform driver");
' L" [7 N# _1 f! xMODULE_AUTHOR("Tronlong");, C/ ?" P+ {, S. j' e! Y8 q! |
MODULE_LICENSE("GPL");
: X. M! Z' K6 C2 E/ a  v+ t5 h/ X; r) h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-20 08:35 , Processed in 0.039761 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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