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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 S; ^6 x; [( \$ E* S5 N3 x  G0 {5 ^
#include <linux/init.h>* E( G! y$ i3 u" J
#include <linux/module.h>0 W9 Y5 F. Q* w$ I: J# X) b# G8 k
#include <linux/kernel.h>
$ C8 B* K9 K% G4 Q9 Y( F#include <linux/types.h>
4 U# P( V  U9 p! c! a#include <linux/gpio.h>1 m6 y/ U- L; w! v8 @( N4 Z
#include <linux/leds.h>
4 C) k7 J5 z5 X* o3 s- C#include <linux/platform_device.h>. w5 n0 d! Z4 j! n. Y; o

1 Y; H, O6 p, P. R#include <asm/mach-types.h>
$ \$ z+ f( J3 G; u+ f#include <asm/mach/arch.h>4 r9 k$ ~4 G9 @
#include <mach/da8xx.h>
7 z- e8 g  _* I2 {$ H#include <mach/mux.h>
  U) I) {8 g( ~8 {% \% I
. b7 z) D  H' u/ S#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); ?+ M. z  f* u" D' o. L0 A( Y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 b; v% L4 r: D% d2 y; Y5 a" f9 Y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 o4 S* H0 k( O+ b/ L
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) r! N9 J4 R$ L$ \9 Z2 F+ {; V1 g
/* assign the tl som board LED-GPIOs*/
- Z# _3 F3 o! G: Qstatic const short da850_evm_tl_user_led_pins[] = {0 ]# v- k$ |3 P" Q% n5 S+ Z( K) V
        /* These pins are definition at <mach/mux.h> file */4 q& S/ ?3 R! A
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; K  o/ |2 a0 h        -11 j4 B4 A6 \; X( ~: b0 x) m  N, l
};
: O3 A; z2 ?9 \% C! U  n7 }+ A* R1 f/ [$ y/ z, ]6 f  \
static struct gpio_led da850_evm_tl_leds[] = {
  N) ~( X8 L  o' F6 z2 I& S. p        {
( v) ~9 q. h7 K0 Q% f                .active_low = 0,/ G0 s, {' T* o8 W. T0 O9 I3 w
                .gpio = DA850_USER_LED0,* B9 U5 Z* V5 S0 X: L( n4 v
                .name = "user_led0",( N( D8 d$ d" O* y! Z
                .default_trigger = "default-on",
' ]4 V& j4 U  n4 ^; F9 p        },
; ?- a7 a2 c: U- D) v* y* V6 X        {
6 y0 R5 t# y) T; u4 W                .active_low = 0,
; M2 d. e6 R" T! Q  i                .gpio = DA850_USER_LED1,
. |0 h6 q5 o6 i4 }                .name = "user_led1",& n* y2 `, `; @& x& `- I
                .default_trigger = "default-on",
8 g' _; F+ K  j  p5 v% x! e# j        },
! y) s6 r, _3 E        {
, x' i' r4 q4 y. ^8 B                .active_low = 0,
0 ?+ z) U  x% U6 [! X; c* y- _7 c                .gpio = DA850_USER_LED2,& a: K8 j$ W- y+ b% w0 p! o1 i
                .name = "user_led2",
% v7 j2 ~' Q: c7 H# S. m) C! ~                .default_trigger = "default-on",7 t# K) p% c- I( X
        },0 g2 _, R; j8 m( F; v/ p
        {3 F0 q: m, V- T6 M3 v4 a& n  u8 B
                .active_low = 0,  o4 A: b& R" x/ K9 r' C
                .gpio = DA850_USER_LED3,: N1 Z% ?6 x2 ^5 }7 O+ Z
                .name = "user_led3",
% I; t3 N, H& z. l/ u9 E! b                .default_trigger = "default-on",
7 b. G3 P! p. X) L  q        },/ S8 K- U! g* C& s  `, K/ q4 }$ @
};
& x, @6 z% {$ V) `9 F; ^7 d; h0 I( k' Z: n
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 a& |/ M: P2 K8 k! L- U$ I2 l5 n( N5 N! E
        .leds = da850_evm_tl_leds,% v7 |- p0 n/ U4 m+ H& l
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ b% M( b: ]& Q4 S9 d; q% Z( M7 E
};
: Y  s  z1 x  N+ ?: {" v4 f2 H8 l6 J
static void led_dev_release(struct device *dev)9 w$ s! }% y% R+ y7 L0 U0 }' d# C3 b
{. r+ \3 T- \: d  L
};
; M: a& ?2 f9 m% w  O" x5 ?
) G" E1 b) a2 \/ I" Ostatic struct platform_device da850_evm_tl_leds_device = {# U0 t( b# K  M: y
        .name                = "leds-gpio",
; x- Z4 ^8 R: ?' W6 ?9 S# H        .id                = 1," J4 S; i. s- o( e# b, v
        .dev = {
7 h9 S. m& D) L, a/ V- J% A: T- K                .platform_data = &da850_evm_tl_leds_pdata,  ?+ }# y/ d9 l! r- J) E& n
                .release = led_dev_release,; M& L2 a9 m3 i$ U
        }# B6 u+ w, j4 [! G+ U  O/ P9 ^) X/ R6 }
};9 e, J) O7 c; `# b& ^& `" P  N

4 Q' F) B9 I9 P$ y' ?  h2 C. estatic int __init led_platform_init(void)
8 u+ T- @( q. r& k6 v) a{
3 C- s" h: P  Q  w: ?        int ret;! G& y0 H  `. C
#if 0
  j7 {% y0 j% l        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 \0 Y5 I$ F2 @! A3 r8 w. y
        if (ret)0 s; r& N. m, q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 z! r# y0 }  N& d/ y# F
                                "%d\n", ret);1 \( `8 Q5 v$ ?1 h
#endif6 {+ u1 O9 Q3 ~) ^! y' C# \  D; \. o
        ret = platform_device_register(&da850_evm_tl_leds_device);4 Q% H0 h' E% P0 w# R% ?: q1 _
        if (ret)
, F5 y; k. s1 l8 R2 l  a# p                pr_warning("Could not register som GPIO expander LEDS");
3 H/ y, r* ~. e3 ]& b        else
4 U4 R) j8 I$ q! p                printk(KERN_INFO "LED register sucessful!\n");9 C. T' W' b7 h# U6 Z, _# @

( U6 R6 \$ S# x5 C5 c        return ret;
1 {4 P* n0 X: C' ?, D9 T9 v% H1 [}
* V; a9 q/ S+ Q8 A6 T0 v
2 g: }" v! \9 d2 e5 S) F3 Rstatic void __exit led_platform_exit(void)
6 \' P+ b2 m  B# l' d{8 \& E7 H6 e6 Q% a
        platform_device_unregister(&da850_evm_tl_leds_device);! q# b- n* Z6 t* T2 v5 j$ m# D+ e

) a8 a1 P% e: w* O        printk(KERN_INFO "LED unregister!\n");
: V/ v. c" T+ X5 N* D; ^7 F  L}; k2 s! d6 C6 s8 u

* {' X5 C& `5 O  @* T) amodule_init(led_platform_init);
7 o0 L! {: u' L9 L- b0 o2 nmodule_exit(led_platform_exit);2 o( e& K' ^) Y; w; ~+ m# X
) s3 D6 }8 e0 a5 r! S
MODULE_DESCRIPTION("Led platform driver");! h. t5 d( z9 {' j: A- F
MODULE_AUTHOR("Tronlong");
, \, F9 H; a; L* J4 Q* ]9 XMODULE_LICENSE("GPL");
- V: {8 u3 s6 l9 K0 ~
( y7 I9 i$ |  K* _: {. j; ?( D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-1 18:13 , Processed in 0.039523 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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