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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ X  f; P. G, m#include <linux/init.h>
5 n- \/ g( c/ i) \1 e+ b#include <linux/module.h>- H7 Q! F7 J5 R  ^' @! S5 j
#include <linux/kernel.h>+ L7 `; ~+ L$ I
#include <linux/types.h>
3 n( u8 N7 Y; N7 ?9 H; @( G9 ]#include <linux/gpio.h>
9 y( W( _$ O1 ~, h#include <linux/leds.h>
' ~8 r5 g0 ?9 j  @6 F#include <linux/platform_device.h>
  Y8 Q' _6 m7 d8 J5 r, f* `! C" D1 P7 b3 u+ U: g/ h
#include <asm/mach-types.h>" o9 k* b0 _! M( r0 `2 K
#include <asm/mach/arch.h>
1 R& Z, G: \0 z( B8 `* u#include <mach/da8xx.h>
- g6 E" o( [( h% a#include <mach/mux.h>
; j  U! S+ [8 j$ f; ^1 X! P
! w& V. ?& U' X! c( ~& c#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" p; I5 H7 A/ |, P( _/ p) H#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 T" [( x5 G3 f9 P$ B% \& W+ Y9 y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
3 q4 h: l, \& p! B#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 P6 _3 |- Q% R8 K! x

( k/ {4 H. p/ F: Y; M- W( c. e; M/* assign the tl som board LED-GPIOs*/: j1 d& S9 A: h# Q. \# A/ X! b( Z. Y5 U
static const short da850_evm_tl_user_led_pins[] = {: z6 s: w. p+ V9 _  k% P) O
        /* These pins are definition at <mach/mux.h> file */
; k. T& q7 P( Y/ z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( g- J( O; I  }) A! [3 m4 t6 F8 ?$ D        -16 f& g- d! r$ F7 |% e! `
};5 J0 R9 U- s; W: c  @; M
! b3 g5 `9 A5 l# M# x1 s5 ?& r* k
static struct gpio_led da850_evm_tl_leds[] = {
! K$ C! g+ l' I/ Q; }9 o& \2 h        {% O. P1 G3 y! F3 g7 I
                .active_low = 0,
% ^$ H& T" R6 b# z9 \                .gpio = DA850_USER_LED0,
2 m/ @( l2 ~: a# C: u                .name = "user_led0",
7 V0 V! V, B1 A4 e  W                .default_trigger = "default-on",$ _6 x4 f4 ?7 a4 s$ ^
        },. T( ]: N0 [  H" m: d9 h
        {
7 A$ q. O9 L9 _8 a3 |- s) M: G; o8 m                .active_low = 0,, |$ U+ v8 L6 Q9 q. A
                .gpio = DA850_USER_LED1,% r1 `8 l2 J" w9 b
                .name = "user_led1",
5 }7 o4 _! x) _7 K                .default_trigger = "default-on",
6 q3 w: b/ e! h3 [7 {        },; W2 h5 O, ]/ P+ l- z0 p, a
        {
' e7 x& D4 W  y$ W; I; a8 p# h  I" F5 z                .active_low = 0,
, C9 C9 Y3 M  E; ~, C                .gpio = DA850_USER_LED2,! M- H* f, T9 p& N0 n$ ?: s
                .name = "user_led2",
; O$ m$ l0 I. t" Q1 r1 C                .default_trigger = "default-on",$ x. S$ l. Z5 u$ i+ t# r- }8 [
        },8 u6 |7 @& x& Y! u5 O' @8 g  S" L
        {
  C* o1 C5 e  b1 L3 {. W3 x                .active_low = 0,
7 m$ p, k- ]+ \0 x5 P                .gpio = DA850_USER_LED3,
9 ?( A6 p9 L  V" j2 W6 P                .name = "user_led3",( p7 Q2 _- f% q1 |5 U0 K
                .default_trigger = "default-on",9 {: x/ y6 ^. z. }- Q. S
        },. T8 i) z3 D4 }0 B4 M
};
3 t5 P- V4 N0 U8 A6 ]4 r* F% T
! Y' j( Y3 O& |, d8 r4 j+ pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 J& r& a; i$ x3 {9 H0 B        .leds = da850_evm_tl_leds,8 H$ b6 w' C' P$ r
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 {. X" a6 Z+ S( t4 w! {& H# j
};
0 o; ~  {7 w0 j, V7 t
% u5 u$ S# f1 @$ w8 f* \static void led_dev_release(struct device *dev)  S2 @0 @/ r4 c3 Q2 P  ]
{
2 Z8 i( z; X% Y5 s: R};: B2 |- M3 Q) g4 J5 l) k; v

) p# w5 C0 R8 `. istatic struct platform_device da850_evm_tl_leds_device = {1 _8 K$ S; T- X4 Z: Y1 l
        .name                = "leds-gpio",% l* X9 p* G$ Q2 w
        .id                = 1,
, T, T& j: G, x  o        .dev = {$ K7 l) r( A. j& B  u$ I: N* N: O8 p
                .platform_data = &da850_evm_tl_leds_pdata,+ Q, B$ h7 \! Y: g- P! g
                .release = led_dev_release,& O6 \* U9 ]4 V" p1 y
        }9 k4 |  z0 y  W8 h, L
};
2 k$ d* i) f. v, \5 C3 ~6 G* }' o/ ]% b3 F8 G
static int __init led_platform_init(void), B( H5 x0 j; u
{$ W* F' E6 @$ C5 ]9 X( v' x
        int ret;
' O, Q" M. E6 X2 ?) x' N#if 0
, O; C) ]5 G5 l        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# m  F* Q: P4 B; V, d9 _3 m        if (ret)
6 f  E& A, n0 l* K2 w1 n                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 h  h9 p3 j; ?/ q( P4 m                                "%d\n", ret);- M% S9 A2 S& {4 ?) l6 Y! b( T
#endif+ W$ G  O9 c, x' h
        ret = platform_device_register(&da850_evm_tl_leds_device);) n" p8 x) W3 Q& G
        if (ret)0 G2 X7 h0 c& H' G
                pr_warning("Could not register som GPIO expander LEDS");
$ K, ]* P. r( ~) K& G        else. k5 b& D* D! d& y, [7 x
                printk(KERN_INFO "LED register sucessful!\n");
( A6 V# H7 O) j0 M8 o& N3 w& ~5 R+ Q6 n6 k
        return ret;- w. I8 \$ Q! a9 S/ B
}5 [4 b0 l, g) g0 i( z/ P

% }4 I! i$ s" g( P, ?static void __exit led_platform_exit(void)
; b/ Z9 X) h# p) K{; R, b% p: y7 q# ~4 o% {
        platform_device_unregister(&da850_evm_tl_leds_device);
* f' _  V, @2 Q
3 k9 o4 A: g( s, Z# U  W. @/ H! p7 F        printk(KERN_INFO "LED unregister!\n");
6 a% b& R$ o5 N6 K7 r}' \" Q2 _/ p: x

, I) h& F2 b# k' p: o7 F$ S1 Dmodule_init(led_platform_init);" c* j) C/ ~5 O; V  G" ?
module_exit(led_platform_exit);% U0 \0 `, S* X% o' @8 ], ?  y' d
& T2 Z3 ~! E1 [( ]( u. A, C. O
MODULE_DESCRIPTION("Led platform driver");
/ m, J1 A2 s# G  `9 N8 i; vMODULE_AUTHOR("Tronlong");' N+ k8 l; Y* c$ W
MODULE_LICENSE("GPL");4 r0 C4 O/ L: m+ x8 G

- Q2 ~6 T7 x. U. U# C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 15:46 , Processed in 0.039221 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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