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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( b, P$ E5 b; M#include <linux/init.h>& O  q% N% f% o7 M& A$ V+ Q0 x% J
#include <linux/module.h>1 k) P1 f' v; S; G2 M: A0 s
#include <linux/kernel.h>
" M5 g0 _* H: K#include <linux/types.h>, U7 {  |* T3 g. W# t6 P
#include <linux/gpio.h>. M3 j: g' B6 `, @. Q& E7 Y
#include <linux/leds.h>' Y0 u7 V1 m$ K8 T$ c6 Y
#include <linux/platform_device.h>
" T5 O4 U8 @1 }0 B+ K+ j# U) O. _& t5 r" [; r# C
#include <asm/mach-types.h>2 `; m; t/ S9 t5 j- M- O
#include <asm/mach/arch.h>5 D' o; _& r3 L+ _( E7 _
#include <mach/da8xx.h>
8 C( y/ x# [2 g( E" s& X7 g#include <mach/mux.h>2 R: z4 S& h# @( B5 i* G
' ~  K' f1 v! ~# O
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 z- a7 J; P4 S" M- _  @#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 S5 `+ Y8 m7 M& z4 T3 @) @* T
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 W, f$ o+ G; O6 m  N. w4 F
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# ?" R% c" E; |/ `1 ]/ ^) U1 p* g, Z& _! W0 K. ]- b" d0 d; }5 S% D
/* assign the tl som board LED-GPIOs*/
% s/ c  h9 O, x: q) N6 hstatic const short da850_evm_tl_user_led_pins[] = {
) t! m9 D' u5 d        /* These pins are definition at <mach/mux.h> file */
! z0 K8 X" |" L/ W- m* o& l        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 A5 w6 I2 ]" H$ [* E        -1  L. V. Q' [" @9 e$ l: F- q. L
};$ l. I. F( \  ~7 X2 |3 S
( k1 Q) W3 _# _6 F" n6 Z. u- u  ]% E% I
static struct gpio_led da850_evm_tl_leds[] = {8 P& \3 M! j! @; q& \. ?6 |6 e6 @# T1 o
        {7 x( y: x/ ~) e! I7 V' `  d1 u( k
                .active_low = 0,2 W/ C; p  R. q* [! h' }2 u1 U
                .gpio = DA850_USER_LED0," @6 B; f+ S5 {$ @4 I" E% A( r3 T: \% y7 c
                .name = "user_led0",
  G, x: e& m  o  M1 J                .default_trigger = "default-on",
/ ]0 }8 c# Z  m3 r% W! n        },
% c( s9 R$ i6 r  O) p, f        {
' v9 S  Y' f! P                .active_low = 0,; }4 [- o8 G" P
                .gpio = DA850_USER_LED1,- R3 W6 A# P( v0 Z: Q
                .name = "user_led1",
0 I4 E. n) X" R' A6 W- Q# t                .default_trigger = "default-on",
" d$ {4 s8 {8 u; H        },
" f  j8 l+ j0 |. n' w        {
' y2 [: U0 L( ]                .active_low = 0,. W/ A% f! V0 p* ?% ^1 Q
                .gpio = DA850_USER_LED2,4 _  h0 a4 ^( H
                .name = "user_led2",
9 k' T3 F$ H4 l9 {                .default_trigger = "default-on",! x* k/ B; @! x8 h1 a
        },
& ^; f, i7 j& l5 z$ n        {
* c, ~' I8 p; c                .active_low = 0,
- ~  X3 z- c7 i! d                .gpio = DA850_USER_LED3,
; C  `* z3 W# K6 s8 v; z                .name = "user_led3",# Z, F  S9 L0 M7 `. G- s
                .default_trigger = "default-on",
3 o) T7 }8 \# W3 I4 h1 H1 G        },3 \; w5 F1 w& V& N8 H4 S. l
};  ]8 O/ U$ D4 J* @2 i
5 y# r/ N, J$ L8 H; d9 A
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* {) U% X$ x: ~1 m2 J+ o$ {1 ?0 b        .leds = da850_evm_tl_leds,/ ^9 L! v' R# c' V$ a. b& |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) P- G( d" H. Q' m$ M0 h$ H& Z};
1 }* P% \, x2 ~: w+ x& l
3 ~0 Q. K) k* xstatic void led_dev_release(struct device *dev)# X" d/ F6 a$ P) I( d" v+ j% {9 N
{
! h1 w/ V9 B- y1 |8 R9 w};" W3 I* l9 P% P, O
2 S* w0 y0 D8 }: m' q4 M) s, E3 p* o
static struct platform_device da850_evm_tl_leds_device = {& i* _. I/ Z6 A: x: J5 h
        .name                = "leds-gpio",& [/ q3 U3 U+ W# E- N" F" }
        .id                = 1,, W) X# @, \" a7 \: @1 R  [
        .dev = {
# b7 w8 O  |$ ~4 _6 [; N                .platform_data = &da850_evm_tl_leds_pdata,; i% O7 ]3 s. j" F+ L( d: I% x
                .release = led_dev_release,6 h, s7 J, m0 n
        }
$ Z! y( ^% ?( ]1 [};
) v' @5 H; L: `+ N! S2 i+ j+ N) w, ?: M5 |& y7 {7 F$ b; p1 ]7 _
static int __init led_platform_init(void), `8 X% R+ Y1 ^0 T6 P2 x
{2 ~$ ~% B3 c2 l
        int ret;
! C! r) D' B; J# g& a0 Y#if 0; ^/ H  `; x: `3 @& Y) u
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 u" i# [& @8 R
        if (ret)) \3 P# V& {# ^" E+ c, a7 z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  a4 e* a: ], S1 j, O# i3 E" E
                                "%d\n", ret);
/ j6 X4 A, A- D- G* e) L) W' L#endif
0 d: r8 g- \4 ]6 i) b6 @, P        ret = platform_device_register(&da850_evm_tl_leds_device);5 V0 g$ @; z4 R! W+ l1 ?6 l
        if (ret)$ b8 X6 t& E. b) X/ B. w( _
                pr_warning("Could not register som GPIO expander LEDS");
0 K) K9 ?9 B7 i; j; J! E        else; i8 z' A& b. P% `3 D: x! w
                printk(KERN_INFO "LED register sucessful!\n");
! `  Y- l' m' n# k* q+ n5 P3 U4 r( [0 \
        return ret;1 o' q, c/ r0 V
}) n) f' x  O7 @

5 g9 {) z8 b& T# |5 S; ]static void __exit led_platform_exit(void)
) K: }$ Q/ l8 H. E; ~( j/ Y{
4 Z! `. O# }* C1 h9 z& e+ J        platform_device_unregister(&da850_evm_tl_leds_device);# T% `$ W. {+ ]$ J! o. k# x" g  Y

; ?" ~& t3 C% r( R. v' q1 g' ?        printk(KERN_INFO "LED unregister!\n");, \  G0 J' \# C
}
. U" n7 v- F* K% L* C+ c
* P; |) o! C9 }% d5 Jmodule_init(led_platform_init);
! ^# U  Z. a$ [* M, K# Tmodule_exit(led_platform_exit);
  \3 h$ j* ^" ^) b
% Q6 u  X/ @& y+ V- ?2 `6 u( AMODULE_DESCRIPTION("Led platform driver");
: z4 L6 Y" h; O; @, tMODULE_AUTHOR("Tronlong");
3 k- L3 b, x" e: N& r0 aMODULE_LICENSE("GPL");9 O/ Z7 U" g: f7 H
1 ]" O: V& Y! d8 R8 S: R" ^4 c( @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-27 17:27 , Processed in 0.047176 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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