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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, R6 \9 W* V+ q( F
#include <linux/init.h>
! f0 o, ]$ i1 p#include <linux/module.h>
( b- P& F, e7 X8 {5 W. {7 Y#include <linux/kernel.h>
0 R/ I) s" t4 A#include <linux/types.h>
8 s0 Q) X* E- j+ Z4 C2 L$ i#include <linux/gpio.h>
  j- \6 e0 k* E7 B  D& L8 f#include <linux/leds.h>
: @1 ]* E+ R2 ~4 k9 @. i" F#include <linux/platform_device.h>
8 @4 `- J9 ^3 i& m7 J& v( O! A; I4 Y2 L0 ]
#include <asm/mach-types.h>. z" S1 m5 b: |; k( X: R: R
#include <asm/mach/arch.h>
$ D2 X0 V* M8 R) J. {7 w9 |+ r#include <mach/da8xx.h>
8 N2 c( I0 u' A2 k, O#include <mach/mux.h>
& W  ?7 ?! @# K# D3 F
+ C3 N9 ~  ]2 M% P#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- x4 w# E/ T3 t% g
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 N4 y& O  H- z' b+ X. J8 i( y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& D7 z- n2 f; H; E' \/ ~#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 Z& o( i1 J0 h. o! \& P# `; v7 E
% l& T! ]) T( U
/* assign the tl som board LED-GPIOs*/" j  ^" ~1 E5 {. n$ A" c
static const short da850_evm_tl_user_led_pins[] = {
& h' e0 A3 B, _, X- J1 I        /* These pins are definition at <mach/mux.h> file */
( S) b+ F; `& H; ~4 c        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 t$ `5 `, L3 {6 ^8 ]        -1
/ E! ^2 D& O7 S' w1 }};
. x3 W  ]/ _  \! O7 v
! i6 J/ c% p. M! a, F  r: E: {static struct gpio_led da850_evm_tl_leds[] = {3 x2 a5 t3 `# j- O0 B; P
        {$ V6 }6 g) z. E  z5 E
                .active_low = 0,
+ D  h" c+ h0 ?) R: _; I                .gpio = DA850_USER_LED0,
6 E! W% J2 ^* ?' Q( Y1 ]$ P- b# g                .name = "user_led0",
9 h% Q& d; c7 w9 x7 w* J% D2 q                .default_trigger = "default-on",. W& X1 C6 W8 x" P9 a: x
        },; |! J* @% o6 O( }3 K! C' \- j3 q+ k
        {
8 W/ q- ?: `1 a8 I. x) |0 }9 s% `                .active_low = 0,
; v7 K7 C  T6 X. B                .gpio = DA850_USER_LED1,
: B% d5 P; R- Z7 x  ?3 }6 t4 N                .name = "user_led1",# [' E/ Y/ g' m2 H* o9 t
                .default_trigger = "default-on",- o  @$ Q4 d3 D, t6 F6 C: P
        },( H6 _) I% f0 G$ T* e
        {. d: Q$ o+ L1 [- D) d  h
                .active_low = 0,4 {; l( o) J* z9 k
                .gpio = DA850_USER_LED2,1 z0 I, y( m1 Q) I( l. \! g2 L
                .name = "user_led2",# n( D4 K4 f" ^5 `& N9 L$ |1 e
                .default_trigger = "default-on",: i$ p0 v2 u$ p8 D. j. e
        },
# \4 c8 m( K- u9 w% C" C0 W" S        {
+ M) s0 ?* A2 E) \. t+ X! e' a& ]7 b' ^                .active_low = 0,
+ \8 w4 d7 T& o& R                .gpio = DA850_USER_LED3,; x0 ?3 z( @- y, Y- n2 R" W! U
                .name = "user_led3",
6 p* K* \( b% _2 r2 B                .default_trigger = "default-on",
, y1 M5 E, I: i1 x+ ^. m        },4 B" Y' H( p/ a8 u
};9 v  d: o6 x$ b0 N: a' V
* |/ H$ v& }  z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" P  j0 U' L5 ]
        .leds = da850_evm_tl_leds,9 F8 r; H4 R, {4 G, W
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# e' I% t, ?% r# P& C
};
0 v7 h' F+ Q, y) e9 A0 |/ w% X# i
1 \4 q/ w& e5 |' j& Y/ Gstatic void led_dev_release(struct device *dev)1 P1 I4 [; w3 t, @1 O0 ^
{0 [# Z1 O. C, B' g
};# }9 J/ r: Z9 S" r, @& T
/ n4 C9 V" O" ?
static struct platform_device da850_evm_tl_leds_device = {7 ?8 L, J$ V% D' }! ~
        .name                = "leds-gpio",) o# Z- i( F# ?' c1 |2 x+ U
        .id                = 1,
/ n" B4 q/ h3 `0 J3 x8 ^3 k! A& h; O        .dev = {
9 N2 O( r6 s2 b0 O4 g                .platform_data = &da850_evm_tl_leds_pdata,* r4 k; y4 U% E5 |0 M: @. N, c
                .release = led_dev_release,% @5 t' e3 B: n! |% a
        }. L* Z* S" T- p0 |* D4 B8 U
};1 o1 J% s8 ^% ^9 B: m
8 _; M- \: j$ D9 x& }. [# w
static int __init led_platform_init(void)) n9 U. m* P% [# L/ w
{; o) _1 @* g2 c: t" m7 g
        int ret;
1 t' @" w/ x' q#if 0
- }) \7 o* M! ~: L$ x1 B- q' i        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( \' _6 C  X" n$ y0 g' J: N        if (ret)
9 i+ L  P0 y  j2 P                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 p0 {9 Y. l9 E' C4 p
                                "%d\n", ret);
0 {3 |9 Y; f7 @+ @5 ]- E#endif
0 z8 a* E# G$ d8 q! h        ret = platform_device_register(&da850_evm_tl_leds_device);
' h# F) d& b( _' A0 X  v        if (ret)& B' c) [' V: P- V, E5 ^) a4 T
                pr_warning("Could not register som GPIO expander LEDS");& p$ P( b3 _' Q2 R3 y3 P
        else
! K9 A7 A- p  T/ r! q                printk(KERN_INFO "LED register sucessful!\n");% c+ I7 \  h1 O
/ R3 v+ \8 b: t6 c# E
        return ret;
9 G# m* B+ ~# e8 Q}# M6 a2 G7 ~5 ^3 x# v/ u0 G
1 p* D8 k2 W- W
static void __exit led_platform_exit(void)4 O( K- l+ l7 I% Y. W6 v; T
{
. v% s0 p4 C& e- i, t6 b6 V( l: R        platform_device_unregister(&da850_evm_tl_leds_device);
$ b9 K4 g( n+ L; D# F6 V3 _& |
' Q0 v) e, r) E/ X+ T1 @        printk(KERN_INFO "LED unregister!\n");
* x' e; z- O7 S0 s2 r/ u# z}: u; ]. e3 Y5 }! I% l

: y' _2 o2 c1 h) d% x2 ?/ A! `  `module_init(led_platform_init);* v+ N! B5 R) p9 M# J* ~
module_exit(led_platform_exit);: N& @% v8 n1 i1 `. J
5 H2 i( ]0 @1 V7 k% ^1 F
MODULE_DESCRIPTION("Led platform driver");. f' u% g4 [$ s. g  k
MODULE_AUTHOR("Tronlong");
9 {9 z6 w4 i( p+ Z& B! Q, _; DMODULE_LICENSE("GPL");( a1 S& y$ K; m4 D7 T; T& `
" ]' T6 U# o/ h1 ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-17 19:39 , Processed in 0.039960 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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