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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! U% H+ d$ J# Z  W  \) d8 c#include <linux/init.h>! u( q6 E5 q/ i) J* j% W
#include <linux/module.h>
+ q  L: @  U9 }% `#include <linux/kernel.h>( w" K0 M/ P; s9 v9 e3 @' \
#include <linux/types.h>3 w4 e' m/ F1 _9 h2 Y! Y" n( P
#include <linux/gpio.h>0 ]; O* @8 k3 G5 J2 J& y
#include <linux/leds.h># n3 c6 m5 d6 J
#include <linux/platform_device.h>( f- [7 I$ w. r$ f. g1 I% R

* h+ t* N; c. Y$ @5 n#include <asm/mach-types.h>
7 y: E- ?$ q/ z3 y& y( x#include <asm/mach/arch.h>
% p% x5 X) f3 l+ B#include <mach/da8xx.h>
) a! ^7 `4 h1 [#include <mach/mux.h>. d, {5 b& ?  b7 }5 N

8 `! d7 `' z1 d! B#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 v: C: I( |8 l8 p/ H) N: V7 Y/ z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 r; T/ H, |3 q3 Z
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ y7 D& ]% c; d; O# W2 f1 d2 I$ j#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ }3 r$ F2 ~0 t0 ]& @& u
* B- c. B0 _+ h. M* T  \/* assign the tl som board LED-GPIOs*/7 g- _, j& d# W. F4 z3 ]! A9 i4 G' J
static const short da850_evm_tl_user_led_pins[] = {
: Z7 p$ s$ i$ S0 d7 \0 j7 Q: Q        /* These pins are definition at <mach/mux.h> file */
" c5 s  G7 \/ L$ r- o5 _        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ I" h/ G# Y3 T% J+ j8 V        -1- {! q3 e+ H/ T( Y5 M% y( P
};
( p& [( }% Q7 [* p# f
, I/ P1 }! X, e' jstatic struct gpio_led da850_evm_tl_leds[] = {# ?& W* v1 C5 t' u
        {) H. H9 W3 r# |- f: ^5 u* _
                .active_low = 0,
# g, r0 Y: i6 ~; _& r  O9 e                .gpio = DA850_USER_LED0,
: W3 W, J) `6 m                .name = "user_led0",
* a; K0 T3 i) h* o" d  ~                .default_trigger = "default-on",
2 j/ u$ b3 |6 l0 n7 D9 c$ f( g! l% E        },
6 V7 U! e% t2 n# m* ~' b- }& l9 X        {0 C3 A3 S- B$ A1 L1 X4 t
                .active_low = 0,
7 r% a3 G2 R7 J- _; _) ^1 n                .gpio = DA850_USER_LED1,1 q# H. R$ l# z3 j
                .name = "user_led1",% U, S/ N/ }( F* J' `2 i3 o
                .default_trigger = "default-on",
5 h+ a5 W/ K  a# M% e: j6 D        },
( X& q+ P) E. z' f: G3 s        {/ b+ q# {9 ^7 N' n! H
                .active_low = 0,9 L8 R  p. f- [9 ^) E' ~' \+ d5 C) R
                .gpio = DA850_USER_LED2,
  f+ S4 C0 r4 {                .name = "user_led2",7 p  p5 K2 R1 H. u
                .default_trigger = "default-on",
. t- j& f3 f# q  W        },
$ E& a, z5 o; B9 F; y        {# |' t' R9 c' u1 K# h5 U% f. D- a
                .active_low = 0,
3 }9 N  g) \8 I  \/ S- a                .gpio = DA850_USER_LED3,; \0 Y1 a& Y/ \
                .name = "user_led3",
: h& |( w- V8 V1 \* d* r                .default_trigger = "default-on",% f- X; X4 ]1 J. t0 W& ^
        },) G& S5 f0 z0 `1 A* |5 F- t& D' F; |
};4 C% f4 S1 x6 K0 I% t. S: o

# s! _3 P5 C! w$ g+ o0 D, Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 O# ^  v. H7 W. `7 }9 V        .leds = da850_evm_tl_leds,% _5 p5 R" @% y; j6 S
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 u! ^" T, Q6 d# L
};
2 c8 C6 a2 F1 m9 o/ e9 p( [7 Y' \3 E& m7 T
static void led_dev_release(struct device *dev)" B0 R( Y# j) X0 C+ ?( t$ j
{/ o2 L- b3 v, z0 T1 O; H
};5 w8 Y/ J+ R  z" D

) l4 b) q9 A) x0 ]+ T+ {! bstatic struct platform_device da850_evm_tl_leds_device = {
5 V& f- }$ X" n/ S. i" f        .name                = "leds-gpio",
1 |. m3 u1 v. E( N/ l5 [        .id                = 1,
% R1 Q& a" r- c  \& [        .dev = {- }! T1 E5 _5 I+ `9 f6 C
                .platform_data = &da850_evm_tl_leds_pdata,
" V2 p* i- U' b) _: X  @; G                .release = led_dev_release,8 M1 \4 ^% H/ o
        }
& {5 x/ [  p& |( C+ u: _};
# ^: C/ Z3 S6 |+ ~$ c% f6 Q% y* u& S: B: N. `8 ?
static int __init led_platform_init(void)
0 T# B, R( z' g{
9 t) s+ a0 s" Z: D1 L' j* ^        int ret;/ T( d8 @& u# h* f& |2 W; B1 j
#if 0
/ A8 I; ^0 t' V8 y3 c1 M        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 X; l1 |3 O# D" C/ b
        if (ret)' W( n/ C' G! H* H9 z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ v# g. E' z9 [' w
                                "%d\n", ret);3 I% P' d* m4 v
#endif2 z( q: n, w) }' ^9 j8 n) d
        ret = platform_device_register(&da850_evm_tl_leds_device);
0 _% Z/ X, Z/ n        if (ret)
' V5 g- Y" h9 U! {( s" }. ?* ^0 g% ?                pr_warning("Could not register som GPIO expander LEDS");: Q4 D, n0 C! a# Q2 _9 Z4 j
        else
+ a9 E9 {, h( c, }# s- H                printk(KERN_INFO "LED register sucessful!\n");
* l4 K; l' u8 c
+ Y# k: ]! T3 U; H; P& m( t        return ret;
# s/ g# [+ Q: \9 T}
' v& B; A( p7 J+ e' m9 i/ G% ?& H5 m" c7 w% q) l
static void __exit led_platform_exit(void)  N; [) Q3 q, F) o* E) J2 p
{
6 L- Q: R+ V3 e, {' A8 K        platform_device_unregister(&da850_evm_tl_leds_device);
8 `" h/ {+ k" {; E, a, f/ @3 n* ~  J) w/ R1 ]
        printk(KERN_INFO "LED unregister!\n");
( G/ m  [  j" q( N" T7 \}
) K: P. t! {/ M: ~4 |( H2 I  e1 D5 J# N
module_init(led_platform_init);5 ?" Q  p5 A( U- i) \
module_exit(led_platform_exit);
# f- H# }8 t6 h# V
' x' q) R( d& N5 M3 wMODULE_DESCRIPTION("Led platform driver");
2 o) j9 U. f3 gMODULE_AUTHOR("Tronlong");& q/ L( _  F% o% j# q
MODULE_LICENSE("GPL");/ U! B4 i' J9 F4 u

3 _  b+ J" q9 Q( _7 k; y* `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-22 20:34 , Processed in 0.035355 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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