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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 [6 l2 M1 p3 z+ G* h  ]9 E
#include <linux/init.h>2 T  F5 |9 K6 I5 Q! M) `, c% o( H
#include <linux/module.h>0 t+ M( ~6 {! L3 P
#include <linux/kernel.h>0 }+ Y' V, T& J4 b4 s( I/ J) E
#include <linux/types.h>; e1 ~& L# t1 [  ?) I
#include <linux/gpio.h>- m! g' ^1 @. X& c/ _9 g
#include <linux/leds.h>9 X. N/ O# T  E- K
#include <linux/platform_device.h>/ C9 ?" Z/ J/ ?

. G/ J0 F. m0 S( n$ Y: Y#include <asm/mach-types.h>4 w& y  _) f: w  j- \; j# S4 E
#include <asm/mach/arch.h>
5 s$ Q- Y% v0 B#include <mach/da8xx.h>, r9 K9 i2 W6 y5 c2 S: g
#include <mach/mux.h>. H% J( z- p2 `4 O! Q7 q5 m- w" W3 y( H

# E+ }, o3 D  f; V% c; `6 @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% X! L/ ]! I" Y- @6 b1 q8 |6 d
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  D8 v6 [1 d) a1 I
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% k- _& J8 H) ~7 G
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 x4 H  u& }) f9 M! `4 O  C: U9 A+ C, x3 c: I
/* assign the tl som board LED-GPIOs*/- X; P+ v! ^* E1 m9 z
static const short da850_evm_tl_user_led_pins[] = {
/ o8 G" A" c, j+ p" [        /* These pins are definition at <mach/mux.h> file */# Y8 e5 q2 q& }* S5 J
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 L' D8 K, s( @1 _( G; I* R0 a        -1% Q5 Z5 V% Z/ O$ X, D+ c
};: I& u. ?# X! ]0 V& n( g& A+ d

4 I) d5 }- `! T! H; Q3 `static struct gpio_led da850_evm_tl_leds[] = {
; g/ f. T* [$ |  `- J8 f7 }( d        {/ E* ^) l. V) W# G3 Q" j
                .active_low = 0,
  z7 h2 f& {( H" @) Q                .gpio = DA850_USER_LED0,* |6 P9 [& c; k$ v
                .name = "user_led0",
& U6 ~% M) l5 D+ \9 y" ^                .default_trigger = "default-on",7 n! a2 o3 Q, @* Y. s+ d
        },, y. @% u7 a, K
        {: g* J+ @( f3 x
                .active_low = 0,7 C- z$ V; j- [
                .gpio = DA850_USER_LED1,6 n  ]- e& ]- }( g1 D% u% A7 E% ?
                .name = "user_led1",
0 ?: K7 p1 ~) G; k; b; q                .default_trigger = "default-on"," t2 s6 L# A. c) e0 v4 Z
        },' \# V: V$ j, w3 _6 J# R! v
        {! o9 f! p7 n/ K8 z2 `2 `7 }
                .active_low = 0,! A6 Z) @1 C- l6 h; t
                .gpio = DA850_USER_LED2,
4 o" F* T7 i) P  B2 H                .name = "user_led2",3 ]  r: P/ Z2 j, X' Z' {1 q
                .default_trigger = "default-on",
( X, j9 H: \% G. {3 \        },
. y( J( c7 ?8 K2 @        {0 |1 P9 H) A2 u5 t5 V
                .active_low = 0,5 f+ d$ ]4 m1 K1 G+ y9 X
                .gpio = DA850_USER_LED3,* q* ^' `+ Y5 `% v
                .name = "user_led3",
4 K* K. w+ |+ f. S                .default_trigger = "default-on",( t3 y9 A! U, E4 m! V
        },
" B6 d0 [* [- h! v" I8 B3 t" o4 Q};% z& v) A% \! h8 y; a/ `: |

0 v: j( o8 N+ K& A4 \; E- kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
+ _3 N- s! |( x% U) B0 Y6 f        .leds = da850_evm_tl_leds,2 L  J" G4 S6 g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 `, E/ Q3 E( E# r1 g4 s1 B. i
};3 ]: `8 d5 y% L+ d# M: Q

( g  o" ^3 |$ r  @" o& I' Q* h- Nstatic void led_dev_release(struct device *dev)
7 _  v* d# u- E% r: V3 n+ M{
, z* Q& b+ ~4 F" M3 T};/ n% ?/ E; v7 l! v2 D
/ a. e& i" G4 q
static struct platform_device da850_evm_tl_leds_device = {- Y' u  X2 l' M. ]1 I7 y) p# o
        .name                = "leds-gpio"," ~8 L0 o" Z% D' \1 {& C
        .id                = 1,
4 d. G8 ^2 C" p, M  g        .dev = {# a" }8 z* s: i# H# I1 e, ?
                .platform_data = &da850_evm_tl_leds_pdata,
2 f, r( \( S9 Z8 _! x                .release = led_dev_release,
+ m5 S* L0 Z  @/ c8 f$ }        }# t* d, b: j& O6 x, R+ ^
};) V) D9 ~- |) \/ A0 i" E
, \/ p! m. y# b& F! ?& }
static int __init led_platform_init(void)( w# V% h" ]+ ?: }5 c# }$ o
{7 v6 Z. F: @; P6 m$ p
        int ret;  A/ j5 [% \; J! o
#if 0
6 a1 r& f5 c2 o, l  m! P2 a4 D& ]        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  v* F7 l" G3 g2 i3 U  t
        if (ret)
9 n2 T: Z$ a1 H  _+ b% F8 O                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* Q5 m9 x+ R% x2 X4 d                                "%d\n", ret);2 d  B% i' }1 {6 p6 s2 ~
#endif
& q- @) `+ I  H        ret = platform_device_register(&da850_evm_tl_leds_device);
8 F, C, O# X' R/ S$ u" L        if (ret)& Z6 L6 L" `( |) W/ r! E6 X) i; o; Z
                pr_warning("Could not register som GPIO expander LEDS");, C, I' j) d# u  ]
        else
' G+ s9 S: ~9 H' j- ]3 T! j                printk(KERN_INFO "LED register sucessful!\n");
' R' S* z" S  v5 f; p
. U$ m# Z* i9 M( o8 u        return ret;9 v4 M7 l/ b* r( h' H
}
9 Z' f) I! X! e$ `
3 r6 L8 @) w, r  ?# Hstatic void __exit led_platform_exit(void)+ d: d: F! n+ m  r. [( K8 d3 m' H
{# O$ S- F- {" u) |" w4 N0 ~! F  d
        platform_device_unregister(&da850_evm_tl_leds_device);8 K4 {$ l1 D/ D
3 ^9 A; [; o; L4 g. y# y. B
        printk(KERN_INFO "LED unregister!\n");
# n3 f0 j: ~, [' K. ]}3 a7 _  `+ }, D+ |+ ?7 \

/ @( h# |7 {/ A$ q' l) l2 t* B" [module_init(led_platform_init);% a/ X4 ^7 j( c1 }9 b4 n
module_exit(led_platform_exit);. l: N. N$ N  U' m

, e# \# _  P/ u  r- G+ JMODULE_DESCRIPTION("Led platform driver");+ C. s/ j7 F$ t) K) R- G. s' h
MODULE_AUTHOR("Tronlong");
) L, [) [$ K6 Z3 J1 N! i: {MODULE_LICENSE("GPL");
: R! q# j* U1 D% W5 k+ q
2 }6 w! J: e, @$ h) P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-9-14 23:52 , Processed in 0.040498 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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