程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; T# O  r3 u- M, f- Z* a5 X3 |! _#include <linux/init.h>' r: P, ^" _* R1 K& W4 k. i
#include <linux/module.h>+ H4 X- z. c4 L/ ~
#include <linux/kernel.h>
/ _( F2 Q8 q3 b5 y5 Y9 J#include <linux/types.h>! u# i) x# e# h2 I; y1 |
#include <linux/gpio.h>
' V- E/ V8 j  E/ z#include <linux/leds.h>
- d5 C; E. g# z8 Y1 l#include <linux/platform_device.h>- [; j; G6 j, J$ S
; ]5 q/ z$ M( Q! C/ P2 `
#include <asm/mach-types.h>3 H* B' V3 \2 W5 Y  s5 c9 E
#include <asm/mach/arch.h>+ _( b. K" k3 d0 u( P. Z" r% ]
#include <mach/da8xx.h>
1 w! p8 \4 J' R$ ~) F#include <mach/mux.h>- D6 ?8 n$ k; ~" p1 ]4 l6 C# I
; ^% y9 L# r% C  V
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 k* c9 }% S/ F( t+ V5 h( {; l( m% x#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 ]' p, z2 ^( R* i/ u6 J& q3 p: k
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 ?1 h; i6 G$ l#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). L5 Y1 x# r6 |$ l

% q% Z0 ~; d" J. Z) G( {/* assign the tl som board LED-GPIOs*/
/ m- f: h' _7 x5 [static const short da850_evm_tl_user_led_pins[] = {2 z# ]% H# C& \
        /* These pins are definition at <mach/mux.h> file */
, K0 l3 [7 a$ @3 \; A4 c% I' ^        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ z7 W( H2 {/ G4 ^        -1
: V4 E) Q! B, P) v0 e};& B$ G! \8 t; f5 a; X, F

4 ?* S  c; V% ~% V5 ?# nstatic struct gpio_led da850_evm_tl_leds[] = {
0 l/ ?7 t/ a" e7 K' V& w        {; G$ b: b% L7 t: t& j# W
                .active_low = 0,0 l7 N2 o- [6 ]4 h0 V3 v
                .gpio = DA850_USER_LED0,4 H# @4 J0 [0 U- T5 k
                .name = "user_led0",
$ H& ~, w  |- d: p9 m3 W                .default_trigger = "default-on",3 N5 |) {! X! w# Q$ J% V9 ~9 e
        },2 J. D, T( g/ v/ {/ x/ t
        {
2 v* T, @4 r. ?$ s                .active_low = 0,; V6 J: D) T# o! B" S
                .gpio = DA850_USER_LED1,/ C* Y8 _. ^8 X. M8 t) X; c
                .name = "user_led1",
! ~& n- F, {) K+ Q* f1 o( e6 o                .default_trigger = "default-on",$ N4 r0 d! x) B% ?* s: Y
        },7 N/ ~: D( p' g/ q6 o
        {
; @: Q/ N# a# c2 \) A! o                .active_low = 0,
0 W3 j! o( ~) k6 D- v9 W                .gpio = DA850_USER_LED2,9 v* n+ d% g" h- D
                .name = "user_led2",
& w* C0 b' r( g5 J                .default_trigger = "default-on",9 q# j4 f1 N4 ?9 `
        },
1 Q& s+ h$ J$ ?) @        {8 F6 L  T! L/ B5 A
                .active_low = 0,
2 \5 T3 z/ d% ?$ o                .gpio = DA850_USER_LED3,
' r+ ^! \9 _9 w8 W                .name = "user_led3",
; {- r0 I# L1 V9 c. I1 y& w                .default_trigger = "default-on",
9 q6 o: s. O. X: l7 j5 |) @6 S        },
! W/ W; E4 U! L};0 d. `* @$ u* ~: s. T* y
6 ^4 K4 o! o; t
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. v2 _: S& J/ p* t* X3 N: `1 X! a# X        .leds = da850_evm_tl_leds,- w! o$ t6 R1 s# k7 N7 C! n4 `
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 S9 J9 \) V- i, }};
& B6 `/ v( ~; @" T2 J1 z& f: w! }: _( o' j' I7 Z
static void led_dev_release(struct device *dev)
) o) n7 m. h$ E0 J' z( ?{
3 I3 \! V, i$ Q6 Q& V};
( A4 P. P% ]& N* ~* [
* y6 b5 P9 y  f  Cstatic struct platform_device da850_evm_tl_leds_device = {$ B3 P) N  p. x
        .name                = "leds-gpio",) S: v" ?  R% D3 U- |) ~
        .id                = 1,$ k# E0 E4 s# e# L
        .dev = {7 c' ^% h- G0 K. w
                .platform_data = &da850_evm_tl_leds_pdata,
4 F: l. H5 I% s* V1 u                .release = led_dev_release,
  C" {- c5 T# F2 j3 S+ o        }
2 r+ P& U( j/ ]; n. a# d. Z  l};1 Z/ x3 V. R5 l* h" d4 n6 d% A

! Z# y" J) X) {! |# gstatic int __init led_platform_init(void)
! y' K: n- c8 {; h2 i{
" @. Q5 c; Q. z  ?8 a4 o        int ret;
  E: D  \2 {0 u( X( @( l+ r#if 0& N  O4 h' m2 J5 K5 F8 F2 `
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 X) n; R6 ~+ ?1 k  Y) [- \" B2 H* n
        if (ret)
9 i) w% @! f2 u                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* u0 _1 S5 h- a6 x) p7 n% R% Z
                                "%d\n", ret);# t& B& Y+ l9 U
#endif( d- u2 f3 G5 H- @! T) g
        ret = platform_device_register(&da850_evm_tl_leds_device);9 X* _& M- l, [) Y3 ]: u- W
        if (ret)
# h# [! j8 b# C3 W9 ]2 `                pr_warning("Could not register som GPIO expander LEDS");
& z4 y$ B( g! Q; K        else
& k% h  D" c% c9 g! q% m% h; g                printk(KERN_INFO "LED register sucessful!\n");3 M$ f+ [( J; i( d% j
* M8 X# l. [# |1 s6 d9 R' d& I
        return ret;  Q# ~4 J2 \+ C$ c9 Z- O
}
4 u  R$ N7 F7 n# {* \: k
1 Y: j1 w) u, M% z4 Estatic void __exit led_platform_exit(void)
2 {- J$ }: {! L& p* L7 A{* ~$ t: g5 N  h
        platform_device_unregister(&da850_evm_tl_leds_device);! k4 w5 F( v. T& f

! B. l* A& v: ?% Q7 k; y2 K) I        printk(KERN_INFO "LED unregister!\n");
# ]6 k- w2 ^, e7 b: S& U( s: ]}
# R. }, D9 U4 d- |) w( N9 p0 B8 u" q4 a+ I, o
module_init(led_platform_init);
+ h6 E0 u0 B- b+ [4 amodule_exit(led_platform_exit);! T; [6 o) j. L, m+ V& X

' m, w+ O( O) v9 m" MMODULE_DESCRIPTION("Led platform driver");: ^. B3 _/ N& s" U& l( ?
MODULE_AUTHOR("Tronlong");) I& I0 o6 a' ]7 D7 X2 W6 i& V
MODULE_LICENSE("GPL");
  L, O  I. e; V6 A* w1 ]9 d- F+ N2 B& k. O; D1 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-31 00:51 , Processed in 0.042255 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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