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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  c( r2 i4 C( \" m6 ?#include <linux/init.h>
/ {/ j1 p4 J4 V, ^#include <linux/module.h>
+ d$ K4 w; {* ~0 J' |; R2 A0 E) c% _#include <linux/kernel.h>  |2 G$ d; Z. [4 Y3 C$ h
#include <linux/types.h>
4 H# T( N1 n) f& ^0 m# l#include <linux/gpio.h>
. A4 J2 f1 R1 x% E) o#include <linux/leds.h>
5 d3 ~* S: g  E$ |#include <linux/platform_device.h>
* V5 a  O1 _8 }
3 c6 h- g- u8 i- E( `#include <asm/mach-types.h>2 e- l' G5 D, w7 `/ b
#include <asm/mach/arch.h>1 B2 F% ^( w: l2 C$ p% M
#include <mach/da8xx.h>
" h8 A, ^- S1 C! N- u#include <mach/mux.h>
  O, T1 ^; S& L1 I, _3 p4 k+ J& f4 @0 W+ A3 y2 J6 T
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 F9 d# H! L6 O6 E2 I$ Q- ^% p
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ I0 ?. `3 V( ?/ `* W
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 x1 a+ z* B6 v
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- F  R# _6 E9 Q) r  |4 u
3 t* A  t: z% Q
/* assign the tl som board LED-GPIOs*/# Z) [5 w$ I7 M0 C% ~. w
static const short da850_evm_tl_user_led_pins[] = {
* W. F7 }7 C. `( B4 j$ `        /* These pins are definition at <mach/mux.h> file */6 q# y' V# B1 c
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
/ M8 Q- z( E* v& W5 v        -1! a% h. G9 r9 Y7 {
};# V! T2 x- [, v  L" V

, p4 B2 c) w# K' z( N9 L- G( Mstatic struct gpio_led da850_evm_tl_leds[] = {0 W% }, I, a# x. e' L
        {, @2 ?5 Z0 b. [" @/ B' |
                .active_low = 0,
4 s, ^1 n+ P7 y9 z                .gpio = DA850_USER_LED0,
/ g/ j$ i. K( Z                .name = "user_led0",# E9 L, s) j5 y6 }2 Y' w
                .default_trigger = "default-on",
# T, ?9 ^: r3 e/ T' P        },
8 O" m2 g; \. n( r        {
, D( C( f2 n3 u: o% `                .active_low = 0,: p9 E2 B# j" ~+ ]8 A! _
                .gpio = DA850_USER_LED1,* \7 j3 x# D+ i" z& _, N: x
                .name = "user_led1",; S, O" u0 ?5 P8 W" k2 v  I
                .default_trigger = "default-on",
2 u# p0 U1 ^( m. f7 l5 M5 Z        },
, L$ T, d' H. t9 k  q! \! ^/ y        {
9 t0 E' O  P4 e/ D$ M/ Z                .active_low = 0,* A' r: {" p% G' d! Z  c
                .gpio = DA850_USER_LED2,; e8 d: _8 A# n9 J! H; y
                .name = "user_led2",: ~9 R8 |8 c) z% h' O  L
                .default_trigger = "default-on",
% i4 T7 r" ~, `        },
  i1 g$ j' H$ l  X+ j1 J& `        {% V8 w7 c4 T. w/ n; q* S2 V2 \5 J
                .active_low = 0,
$ v0 w/ n( J- j0 A                .gpio = DA850_USER_LED3,' k8 ^* C% }- f$ H! ~6 w
                .name = "user_led3",
( U" y2 i' c/ L$ @  ^                .default_trigger = "default-on",2 ]5 z/ |8 q' `6 C( ]
        },; q# U$ u! y! b* q# h. ]3 i
};. [2 h5 L, A" A) x# P' c  s& o

8 t. A, K& C& ]$ ~static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- [3 W. H0 H0 {0 x9 }9 s- N+ r
        .leds = da850_evm_tl_leds,( }2 _' a3 f: a6 D
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 s$ }) b$ C4 I% H( a};
2 J/ X$ v' k; |3 P# l) A; w3 b# H0 T, A& G4 `- h, {
static void led_dev_release(struct device *dev)
8 P9 O- N% D1 c0 `5 {{
# `" R9 L. ~! G& ~; B. e};' \, v% `+ m$ `+ A
" r  n3 |! [! i, X. t' _
static struct platform_device da850_evm_tl_leds_device = {
; o* l* t: B9 k/ h! e        .name                = "leds-gpio",
$ Z* \. ^; F1 T        .id                = 1,  Q# ~0 p  d$ [
        .dev = {
* M1 h2 J, I- [9 S4 u                .platform_data = &da850_evm_tl_leds_pdata,6 b8 z5 {0 b! |* |5 o% T
                .release = led_dev_release,
4 F; V6 O+ R/ L  i9 w( a& q& X$ g        }- H9 _+ S" L: Y( h$ |
};" S! w- V: c9 a4 K

7 A1 [/ _8 ~. n$ U2 Y  gstatic int __init led_platform_init(void), R( r8 r# d& M
{
! O5 [- d$ T9 J# ~6 H& P: X        int ret;
6 _2 Z  ?  a6 @" F$ c- T% ~8 c% Q#if 0
9 r, c# z+ X7 k8 j8 ]; o+ v! E        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 d( P9 F) e' Z5 e) z
        if (ret)4 y8 K1 [0 F1 W0 z* M4 V
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# y* d$ U' T5 K                                "%d\n", ret);& Y* |7 k1 J2 M; k; b8 K' B" {
#endif
  W  V% n: c& z0 T) o6 [7 R, {- i        ret = platform_device_register(&da850_evm_tl_leds_device);4 G' Q$ f3 n5 }  m0 _0 G
        if (ret)
: Z) k! F. s3 Y& W$ t                pr_warning("Could not register som GPIO expander LEDS");
5 ?: @- r) s  I' N0 n        else
0 l! C+ s7 Z5 E* Q1 ^                printk(KERN_INFO "LED register sucessful!\n");" K9 d' G# w/ E

/ q, O5 N* ?& V5 G) |- v6 l        return ret;8 s" Y1 G/ [1 s+ ?% H
}5 D0 u. u! G* X5 b2 y
" E& r& m: F  l* d+ H( o7 L/ u  }
static void __exit led_platform_exit(void)+ p. t) J- p0 M* O) n+ F
{' r: G" z+ n3 k; ]  O* q
        platform_device_unregister(&da850_evm_tl_leds_device);0 ?) p& o. O/ j7 J4 ~) F! i
& D  L3 L" @. p8 {- ~6 E
        printk(KERN_INFO "LED unregister!\n");3 s/ w. ?" A4 F3 ~
}4 y$ J" e5 N- W& B; K# f7 }# F  p9 S
$ S+ ?4 ^0 A% r2 `
module_init(led_platform_init);
# T; `+ c" `9 {0 j8 p) Kmodule_exit(led_platform_exit);
' o8 ]& G" ?" M' v% ]3 O# L+ j0 w+ h& V) D) E
MODULE_DESCRIPTION("Led platform driver");
$ V7 ]5 Q- e3 U/ _MODULE_AUTHOR("Tronlong");
3 }" i* O: H- hMODULE_LICENSE("GPL");! p" f* T. a: v( d

' L5 L6 V; N8 |5 p5 R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-11 13:38 , Processed in 0.039043 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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