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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; ^% e  |) |6 X; S7 Z3 R
#include <linux/init.h>$ Q+ d% a* G1 W# B) y7 X: [  g* Z
#include <linux/module.h>
# j3 `6 d+ X  j+ \) `#include <linux/kernel.h>
2 K$ j( b& h" r- s#include <linux/types.h>3 D( A7 [) T$ I% R/ n
#include <linux/gpio.h>
7 z" v+ I# L" ]6 [: \4 L#include <linux/leds.h>
$ e+ ~9 V- e! s1 Y#include <linux/platform_device.h>
! T( d/ r3 k' W, I' \" a4 v& w& j6 A5 ]; w& e3 @
#include <asm/mach-types.h>
# `& p( X7 F# R! V5 X#include <asm/mach/arch.h>  n! R, c9 X, t& p" |! S
#include <mach/da8xx.h>' L' B% ~7 [& j; o+ \
#include <mach/mux.h>+ X) w8 s# u7 x+ y* P
4 R3 _4 y& c% z- D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. Q) {  W$ z3 Q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# R; [! z$ Y; A- q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 g( S! E$ K: Z3 ^
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* Y6 t4 G! f( \% l. S! k

8 ?3 E! o: N" ]7 ^/* assign the tl som board LED-GPIOs*/
& H$ L2 q- p' Ystatic const short da850_evm_tl_user_led_pins[] = {
, |7 o6 V' e. B' }        /* These pins are definition at <mach/mux.h> file */
, H+ Y* a6 g8 G        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' c8 v! p& n( W% r" N+ n" S' v4 G        -1
; Y) g, o( q: W* @) p4 |% E};% }5 x: v* G3 q7 v
& I9 Y$ @8 |! W8 Z3 P" J* C
static struct gpio_led da850_evm_tl_leds[] = {, p% a7 m* N" l! P1 A
        {, W( V/ S/ s1 J5 J* a/ V1 p* W& ]
                .active_low = 0,
& q  n; |+ j( [" q. V                .gpio = DA850_USER_LED0,+ I, r% h9 ~5 d- r
                .name = "user_led0",9 S  r  q0 i. ~5 Y# O+ O
                .default_trigger = "default-on",
) c& e) P% ^2 {        },( ?- U& Y- v3 c1 b( g/ O8 N
        {
2 o2 C% U% p% e" ]/ b; W  v                .active_low = 0,/ T: ?9 G6 {( J" q- Z
                .gpio = DA850_USER_LED1,3 y9 Y% l6 R& m6 T7 j- l* g
                .name = "user_led1",+ i' |. m1 d$ Y9 }
                .default_trigger = "default-on",
/ R! W) N, H5 ^4 Y7 r8 c+ Z" [' I        },
4 a* r2 T: p6 F/ g) ~9 l, S        {
2 b/ @8 y+ b( A* R# b3 |                .active_low = 0,
, m" H; J1 V6 U. w" M- r                .gpio = DA850_USER_LED2,% i+ U# J( [# }3 K# E5 p1 H
                .name = "user_led2",- U# r3 m& G/ ?  q' t0 @
                .default_trigger = "default-on",
2 V1 o1 D. a1 ^; Q" U# ~. U        },& t" D* Q6 {2 P& n7 \
        {
# j$ y8 I4 t" ?5 I                .active_low = 0,( e- Y5 |8 b2 X  Y( Z. c5 d/ j
                .gpio = DA850_USER_LED3,
+ Z" k/ }3 }  H9 E+ ]/ D                .name = "user_led3",7 B) l3 a6 F5 w& c1 j% t, A
                .default_trigger = "default-on",
! Y2 _8 K: @" Q. ^5 K: J        },* i9 {3 A% H/ ]  ?, v& L) D: K( P
};5 E; K' L; B. Y5 @

; P3 Y/ y2 g+ C) q2 x: V: r; X& }static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) \% X6 a$ I: Y! O! q* k
        .leds = da850_evm_tl_leds,
" W! G' d, N4 X6 \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 h; t' B  |0 a# D! A$ c6 j};
: C% y( z( a  q  D  t) B' @4 `" `- D3 j. l3 u$ q4 o5 n; x' `
static void led_dev_release(struct device *dev)
& R- K+ F% j+ R! _7 M0 \{
! H  [  N( C6 Z};& |: x+ Y) |( p( I9 i5 F* D4 j0 t; _

" x. `, Q! k' I7 ?" |static struct platform_device da850_evm_tl_leds_device = {% N! A& o# X7 D# C4 D
        .name                = "leds-gpio",
( B1 |, j8 j( W/ w9 t# [0 d; E        .id                = 1,0 ^' H; d  f5 s& d
        .dev = {- u, O0 z8 A; A! M2 j0 b$ f
                .platform_data = &da850_evm_tl_leds_pdata,
( L( t5 w& [! Y+ t# P                .release = led_dev_release,
+ h$ m% m/ O6 R# M6 J4 G6 C% o3 o        }8 V; t* q9 a$ ?4 W6 B: `
};7 T0 Y/ {& Y9 a- r% H2 T$ {2 ^
9 }6 `, l, w$ W6 B6 o
static int __init led_platform_init(void). R3 E& k- F: h" w: `: q
{
! u5 ]- k$ R9 ?2 A        int ret;8 l' `- l$ e1 q5 r2 j
#if 03 K1 a% L" ]# [7 `" c8 S% ]0 s
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, {+ {6 A' M  y. A% `        if (ret)
5 u2 k3 N5 W) `+ I) X1 D( U% O                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 E, l) g6 M* {4 ^/ U
                                "%d\n", ret);8 v, k! @" o6 Y% F- F" V  _
#endif
/ R4 {7 u& F9 b        ret = platform_device_register(&da850_evm_tl_leds_device);' ~7 ~: \0 I8 i* p+ m& z, c$ V7 Y
        if (ret)
9 o- ~* g& P$ S; Y5 g" ?. a                pr_warning("Could not register som GPIO expander LEDS");
* Q3 ]1 l/ y! ^  c1 ~        else" Q4 f8 C0 O# @+ d- C: m
                printk(KERN_INFO "LED register sucessful!\n");" Q# w3 w& d: n# }. k

. z$ V  f2 o( N6 n, }) k; e% Z        return ret;
8 a; g* a8 _5 C" ~" g6 f}5 Q' R5 F0 B/ A

% h$ S  X8 d( U3 n" f& Q% ostatic void __exit led_platform_exit(void)+ B: m, L4 f  C3 g; [  y# A/ V0 e
{: i# {6 V+ S" d# q; t
        platform_device_unregister(&da850_evm_tl_leds_device);1 T# H) F) d! l: L+ Q

- L$ W9 X$ A% \1 j        printk(KERN_INFO "LED unregister!\n");
4 C9 y, O( l3 @# e/ Q1 e}
# g6 [8 o2 W) e! |/ g0 A, n; \
1 r5 h2 e2 ?6 amodule_init(led_platform_init);
1 T  O& B( h: ~! m4 ^module_exit(led_platform_exit);$ E% Q2 k7 v( p0 l4 U# {0 q

& p5 W0 P2 K- e5 Z3 Y4 Q4 U5 G4 dMODULE_DESCRIPTION("Led platform driver");* O" ]8 c$ z4 x( r5 E5 c
MODULE_AUTHOR("Tronlong");  T6 {8 C3 q5 N$ Y0 ?/ P- T1 x
MODULE_LICENSE("GPL");1 n6 S, g+ z  [' \

' B  i' @, u! M+ ?& c9 ~1 L7 J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-28 13:29 , Processed in 0.039486 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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