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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 c" J2 O8 g3 r; Z#include <linux/init.h>
8 n8 r1 X/ v) B% m- A' f4 ^#include <linux/module.h>: C* c9 K7 E* @. G
#include <linux/kernel.h>
& z7 T" g: m! }9 ~" r#include <linux/types.h>+ p& Q+ u5 O" ]5 K4 y
#include <linux/gpio.h>1 j- k! G- N2 M" S
#include <linux/leds.h>- T4 w" K2 Y- k) E) [
#include <linux/platform_device.h>) }# i2 l$ U) ~: l* s. ?; m7 }
$ v( ~" _. Z( S4 v2 N, D
#include <asm/mach-types.h>
! b1 M/ J" h+ G# |2 y#include <asm/mach/arch.h>  k5 g: v: [0 k1 K
#include <mach/da8xx.h>
% Z* F3 t( p6 o1 O0 ]* L3 [8 Q; _+ I#include <mach/mux.h>; s! x, [& k7 |: d" F/ S, r, `  {
- U: q/ E* a2 }3 n
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 p2 }7 p0 T+ A0 p% a7 k#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 U/ ]; ~8 i' e2 j- n) `7 T. n6 f
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ J3 W1 g- W: u3 d) H( U#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 i3 A" A* N+ \% ~1 e  [; p
3 \* t2 P( L" k# R3 E; V. ^4 C/* assign the tl som board LED-GPIOs*/
1 b1 z7 Q  K6 Hstatic const short da850_evm_tl_user_led_pins[] = {
0 q# I2 h0 }9 k$ j1 j) V" c        /* These pins are definition at <mach/mux.h> file */2 X. G2 ~0 y) L+ m$ P8 i
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) M6 t, G/ w5 E& y$ b        -1
& `; R4 [9 X/ d+ E1 V};
7 N$ P3 ~, q8 }( u0 g4 l8 I5 F5 ], ^- C7 [4 A. E. K
static struct gpio_led da850_evm_tl_leds[] = {7 k" N! l% j8 e+ r, v$ L5 J# p6 `! z
        {
; Y9 R7 z/ _. `, G                .active_low = 0,
/ f) M% L$ H, r0 y2 F; Y- L$ f                .gpio = DA850_USER_LED0,3 F8 ^, p, t! u% c# k
                .name = "user_led0",' ^9 J& e; W! X3 H3 V5 w
                .default_trigger = "default-on",2 l6 f: x- }; [" Z5 M7 H; p
        },
" ^5 d# e7 {2 f/ f, W+ A        {4 }7 @+ j' P4 D9 P$ R% C4 L
                .active_low = 0,
, b& _  ^3 @; L0 b4 \, W# I                .gpio = DA850_USER_LED1,; A% }2 v3 ^+ M1 _$ p( J2 a0 q
                .name = "user_led1",
3 [5 u5 l% P9 @8 C# A                .default_trigger = "default-on",. j7 b! L' l: ]
        },
; b  u2 C+ @* z$ h        {  L% [3 ]# c/ b4 M
                .active_low = 0,5 ^: g" ~* N( L3 [* W( W) m- M
                .gpio = DA850_USER_LED2,) L/ ^( m1 [3 b$ D
                .name = "user_led2",4 K" p4 ?2 c0 ?5 l1 x
                .default_trigger = "default-on",
5 \0 X/ O. t% {8 }$ w: k" b& d6 q; Q- L        },
3 F8 R5 K% g9 y4 t        {+ [0 A! }2 _9 ~! f! b9 S, Z
                .active_low = 0,, c( D2 c) S! E  D* U. q
                .gpio = DA850_USER_LED3,& d  ^" Q3 c1 M1 z4 {
                .name = "user_led3",
1 r+ W  u. [+ o$ u                .default_trigger = "default-on",
# _  w1 X, ]. o  B5 G5 s# m        },1 X0 r1 G- I+ [( W3 h9 \5 r
};- a; W- r$ a: \+ \# g) _5 y

' `7 D5 P- k4 v" l3 ^static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 l. A) _, ]0 W        .leds = da850_evm_tl_leds,
  w7 M9 h# F  u0 `. j0 f        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& ]& r3 p& g/ S5 e& y* `- i& _
};
7 @) G/ J- R  F8 I1 z: V3 U1 e! f& V3 W' U
static void led_dev_release(struct device *dev)
+ p6 b( {8 y, k/ {( x( k, ]' }{
/ [1 ^3 a4 `, \5 ?$ L};
. A+ _. i" s, s# D2 V6 t7 ]3 O
; H6 `5 e/ q( |. Q# @static struct platform_device da850_evm_tl_leds_device = {
) }8 @5 x6 T2 M5 T1 p8 s        .name                = "leds-gpio",4 C8 w, `% f5 U. S+ E
        .id                = 1,
& _; O" _5 H' i% f: Q        .dev = {5 T; W. u+ K" r% c, q
                .platform_data = &da850_evm_tl_leds_pdata,
7 K8 ~& Q7 O8 s% }+ Y                .release = led_dev_release,
* S: _) A$ b6 A6 H$ p* _- [        }
9 X. i; C* [) T2 D, j' J$ c};5 G4 b3 q: G9 r' r
3 r- N1 N+ q8 h2 a; K4 @
static int __init led_platform_init(void)
5 O: ~( A9 z; B* N, P" f' J% k{
( S! x! U% W7 ]5 W. ?1 q* K  f        int ret;0 |% _8 `3 C1 E0 E& g9 u6 _! B" U
#if 0
9 h/ ^; J) h/ l8 c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' O9 v. [' E5 J/ N/ K        if (ret)
8 K9 O8 Q+ h0 @0 S                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 Y3 z9 n- ~8 ]/ z5 m( z1 `' Y' H
                                "%d\n", ret);4 I3 e8 G" R4 p4 @
#endif' o+ e% m: R7 n% F2 D! M4 ?/ v! l' G: P! k
        ret = platform_device_register(&da850_evm_tl_leds_device);
7 A4 e+ w3 C* C5 c        if (ret)
9 j! Z' L$ @% l  t+ k) P1 O( v3 ^                pr_warning("Could not register som GPIO expander LEDS");
( u6 d% ]+ D! g9 _5 n        else
3 W. u, v9 O+ a" K                printk(KERN_INFO "LED register sucessful!\n");
- e' Y! R4 Y" ^! a; U9 E7 [( s' _7 i: ~# ~
        return ret;
( M2 H* D$ I. f" ^2 N. [}
) X2 f& W0 {! K% Z& X
* A) ]# D- _" B3 ~( G6 Hstatic void __exit led_platform_exit(void)
$ q7 V3 R) l6 t1 [6 c{/ p. b+ g  Q8 x
        platform_device_unregister(&da850_evm_tl_leds_device);
$ y/ t0 [" A/ Z( a/ B/ S- I
2 H9 c# O& W) S* M) x& S        printk(KERN_INFO "LED unregister!\n");
+ f# H3 q3 ?  M6 Q  v) y}4 B# h  L! c( S' h1 ]' O5 q! ^0 \7 \
# K" ]* V) B: \% z& p, g
module_init(led_platform_init);7 J5 T/ Y& K+ i8 S# m  D, {/ x
module_exit(led_platform_exit);# f- I% u- ^* w; ^2 b6 L

  d3 a/ D# A, e9 V8 m# |3 ~6 BMODULE_DESCRIPTION("Led platform driver");
# [, P3 T6 S$ y  oMODULE_AUTHOR("Tronlong");- b. R- l0 @- X' W% l
MODULE_LICENSE("GPL");$ ?2 y$ E  {; c$ F# \9 c
2 L$ Y, F. o) h) ^, ]6 n4 u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-17 06:40 , Processed in 0.057701 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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