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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* q8 X, G+ ?  P& k#include <linux/init.h>) ^( b( n& P" n3 x( C& k/ n% q9 k& }6 |
#include <linux/module.h>1 q  J' F# r8 M
#include <linux/kernel.h>/ ^2 F& O0 Q' @& [# W
#include <linux/types.h>  [: t+ h+ q8 u1 X' x$ s
#include <linux/gpio.h>
( X" W) G5 Y1 V, P- ?1 l#include <linux/leds.h>
. W2 T& `; Y+ r$ o( W#include <linux/platform_device.h>$ c" e" O0 s+ Z

0 m* j2 d+ Y( |#include <asm/mach-types.h>  j$ H0 t5 t3 t1 G% w* C9 C! `9 L
#include <asm/mach/arch.h>$ [, x% a0 K5 N+ l# c/ m3 ?  y2 w: n6 b
#include <mach/da8xx.h>
4 |- }. ^6 |$ R$ Z3 Z* @, u#include <mach/mux.h>% s. q0 b" B( _0 n# j

  ~9 m; f0 `  W. P" C" W' I8 O: ]#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 ?, w$ z  {: N& w- d0 `
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): R6 l/ [, x4 T/ U7 z5 }2 \/ C3 D- j
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 k' T7 M2 d% C  P1 h#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ p* ~% n! s8 h! S! w. [# u
/ M9 X! G2 k* {- y) c/* assign the tl som board LED-GPIOs*/
1 L4 P6 w& p; `2 |: i4 L" istatic const short da850_evm_tl_user_led_pins[] = {
+ R& }& y. N! K; I        /* These pins are definition at <mach/mux.h> file */1 I  D" c: M; B( `! D" u! C! g
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- Y0 L) Q5 E; |+ g
        -1
8 c( F# G. d* u};
9 h% t. o, P9 ?
! N' W5 p+ q$ P: {; M. Estatic struct gpio_led da850_evm_tl_leds[] = {
! W4 y# Y$ f% ]: e        {
, u" T7 a  g+ B! v; Z4 `! o                .active_low = 0,+ u& R7 j, B2 D4 g
                .gpio = DA850_USER_LED0,2 G6 L  O# P. e$ g7 N. x
                .name = "user_led0",9 _8 M6 n3 b  y+ b/ W: M
                .default_trigger = "default-on",4 S' X; ?7 Z; T
        },
8 p8 R/ B' h2 ^  c* R! m5 U3 x        {
3 Y& v! Q  U  k7 Q                .active_low = 0,5 ]  o- D: D/ Q
                .gpio = DA850_USER_LED1,/ S0 |/ C, f2 E, c" n3 X% s
                .name = "user_led1",
2 i8 U, Y* X' U  s6 k                .default_trigger = "default-on",. M( t/ Z  u; ~( y5 f# t% Z
        },6 a- s) j" u- S3 R+ X
        {
; F- ^: O" K& [" e" W; R                .active_low = 0,% w$ h% }7 p1 G7 S# t& |
                .gpio = DA850_USER_LED2,  r2 `0 t, @/ E4 O+ }4 r2 [
                .name = "user_led2",( X# ]+ [: ^: I& a" j
                .default_trigger = "default-on",
  L+ ~% B: H7 ]+ a. v% M        },
$ \- x8 y- E& u0 y        {4 c9 W. n; q- l( W7 ^8 T  U4 E* ^
                .active_low = 0,6 A; R1 e5 ~6 k& @) w
                .gpio = DA850_USER_LED3,7 U1 @6 L8 c" o( |
                .name = "user_led3",: s. _$ x3 @: d; m  B
                .default_trigger = "default-on",
. B7 I5 v& d+ b/ j9 C8 i        },
  s1 O& V, D; ~( M0 F" K1 J};* }% V% t4 W4 k3 W1 ~
: F# m% q/ K4 }+ b* M% O  e
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# n( s! ?9 B$ m/ f+ W4 E& P5 j
        .leds = da850_evm_tl_leds,. Y4 v6 R' V. L
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. ]4 k" j* E% `& h1 a: J
};" ~/ b% j; @% ~; Z: l8 l

9 _8 l: f3 s# l8 g2 \' xstatic void led_dev_release(struct device *dev)
9 \/ W& E  H) {{1 ~0 |7 C* ?7 |& }# x3 G" ~
};4 k/ l3 v" ]$ r6 \' |7 g! `

$ [9 Y, B* }' ]6 D7 Bstatic struct platform_device da850_evm_tl_leds_device = {: X* T) v$ y8 A; c3 e, [
        .name                = "leds-gpio",! H8 f- X% c6 A
        .id                = 1,  x" l$ S  g) K" J# Z7 e# t
        .dev = {
; t  w1 Q# K& t- n4 `                .platform_data = &da850_evm_tl_leds_pdata,' L- }7 [# y8 ?
                .release = led_dev_release,
) I4 ?2 u4 n/ V$ A" d        }
3 D2 N* S7 E- j* v0 Y- _5 z};* R3 J/ T6 A- L& ^2 u

( k, c6 L& a. wstatic int __init led_platform_init(void)
& J" O' E4 s# g4 Q1 {8 ^{
) \" U$ |" Q7 L) [) a$ o        int ret;
, |% y+ X5 O2 U0 j' d8 F#if 0
2 w1 R. C) [9 F1 Q6 r0 x( C, L        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  e+ \3 o9 E& h9 z+ x' [! U4 V  m7 Z        if (ret)
3 r! R0 V$ C( o8 \* S- B8 }4 \                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. Y# D3 F9 X5 b7 D5 h) ~0 x                                "%d\n", ret);
  p' D: Z7 V" L2 a  z1 ~; `#endif
; k" y& v' a* r1 G: _0 \, o" a5 P        ret = platform_device_register(&da850_evm_tl_leds_device);' `/ L) M# b8 W/ d# l" W3 T$ S% J
        if (ret)
: v/ C4 p' O/ s+ r3 F0 n( |/ s* g                pr_warning("Could not register som GPIO expander LEDS");" k1 @0 P6 e* U2 T) J/ S* [
        else4 h6 V9 I5 O5 _' X3 X0 U; f
                printk(KERN_INFO "LED register sucessful!\n");$ {& f4 }- d( z, Q% Q

6 C# W. v9 |) C8 d0 |, e        return ret;  U9 C8 D9 Z+ G: s5 U3 d7 g+ H6 [
}
- `) o$ o/ X0 D7 R6 J/ D* m/ f* i" M
static void __exit led_platform_exit(void)- m( X1 V4 Q) [; H4 C
{" [/ i$ E6 \% o2 E3 f
        platform_device_unregister(&da850_evm_tl_leds_device);
' ^$ ^8 Z3 D! J# Q7 P9 d( k
0 ^1 @" G* N2 G6 q/ C& F. Z, i        printk(KERN_INFO "LED unregister!\n");
0 [) ?( g, ~  X/ x- c3 H  U}2 t3 L/ O( J  k+ T

9 d9 t9 c1 F+ Q" O' I" pmodule_init(led_platform_init);! d5 \) L$ T9 C4 c1 J; d
module_exit(led_platform_exit);
# a# P( s. M; a* q8 H" p0 u; ^+ D3 R0 o2 X; H& Z0 o
MODULE_DESCRIPTION("Led platform driver");
, u& y, Y1 T/ uMODULE_AUTHOR("Tronlong");  t+ }) U+ c6 ]! |- J1 f
MODULE_LICENSE("GPL");
9 P5 e" B$ _+ M, w6 m; s) Y$ o' |$ [& Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-15 21:12 , Processed in 0.038416 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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