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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ d9 K/ j8 }" L/ P
#include <linux/init.h>: G# r  ~% O# `5 S
#include <linux/module.h>7 W4 G: U) I+ w3 k2 \7 h9 O
#include <linux/kernel.h>
* U. d( M5 V* n9 c#include <linux/types.h>1 F. M& u# o  V& o0 ]4 V
#include <linux/gpio.h>
6 @! ~/ ]. f. E! Q7 U; x#include <linux/leds.h>; I- f% s" ]5 s" F0 @; ^  L9 \' `. W( s$ a
#include <linux/platform_device.h>. w1 I: f9 y4 a" A$ C  N5 `0 k
: ^5 x+ X; c7 s! b8 f$ k9 s2 ?
#include <asm/mach-types.h>9 u5 |( k3 I/ p
#include <asm/mach/arch.h>5 M' x5 O7 G5 _- G1 q+ ~* k3 c
#include <mach/da8xx.h># z5 I, i$ k0 `. Q3 {" U
#include <mach/mux.h>, w8 }' S6 N8 H* x

6 M* M* L$ K0 S#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 V0 A  u' ]; f7 L# W4 i#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% b: `+ E) x+ P! T: I+ H
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 Z0 n) o, E" J% Q0 Z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( q/ D. q7 g( E* h7 l* h& w

. |! s4 H5 G4 a  k9 q/* assign the tl som board LED-GPIOs*/$ B& L9 @8 Y5 P' J( M4 n# r; ~/ _
static const short da850_evm_tl_user_led_pins[] = {
1 J& d0 M0 }0 i1 P        /* These pins are definition at <mach/mux.h> file */
) d6 j/ z+ q7 q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ R6 ~* p: E. G0 X* X2 V4 _, o
        -12 s( ]3 R) D8 ^8 n9 T) |
};
& J* J9 k9 `) d0 Z: V2 L% A+ B5 N6 V7 F$ _( w+ B3 L+ h9 R
static struct gpio_led da850_evm_tl_leds[] = {
( Y7 _2 u0 I! e; {; k7 _, [        {6 N/ K& Q! i# ?9 B
                .active_low = 0,
' F0 e; @4 r4 P- P                .gpio = DA850_USER_LED0,
# J* \. Q" o/ O7 s4 V                .name = "user_led0",
9 W9 v3 o  H: T  q0 W6 C9 N                .default_trigger = "default-on",
5 A* x/ r- e; q: |        },
- j( o7 F& ]+ e& {. I! r: S  K        {
2 t" k0 _; N% T- L: `                .active_low = 0,
# J& ?7 |. J  Z- B" ^' S/ q5 K                .gpio = DA850_USER_LED1,
: Q8 P! r" b! F- t                .name = "user_led1",
8 @; ~2 i& G# v( y5 Z                .default_trigger = "default-on",1 |# r+ Y% F  L7 \! q- C
        },
+ d- v" C0 ]# F' h! s2 O( k        {
9 Q- {5 M6 }* r" u3 E( P                .active_low = 0,
% P8 A5 A, }+ J* F                .gpio = DA850_USER_LED2,
$ m# L) x6 m, U! _                .name = "user_led2",
3 C. Q  p9 d( U                .default_trigger = "default-on",
8 N& [0 ~. j! i5 C7 ]) |3 ^1 s        },3 O# I& ?" u/ Q3 e* p
        {
. d7 X7 n. L$ V/ x& Q8 S( W* o6 J                .active_low = 0,
0 h# Z( ~# s; K2 B& {                .gpio = DA850_USER_LED3,- Y" Q( A2 P; C8 C2 p& f
                .name = "user_led3",7 L8 Y5 d1 u# O# S
                .default_trigger = "default-on",; _/ Q: N) b2 y
        },& u1 F! W. z1 X4 L
};
( J5 {0 d) B* {5 t1 K: f8 p4 |" {5 ~2 h! e4 r, a' K
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ z) F( l" c# o( h- b' A) k$ t
        .leds = da850_evm_tl_leds,( j5 v  C9 ~) P9 g& G2 Q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 V/ A. R; q+ J% ?$ o};+ M, |2 Y  X$ s( @: n5 K
/ d: q: z' m5 t9 @0 d4 a- r5 c# T7 b$ L
static void led_dev_release(struct device *dev)
  q, h* T* l0 x; E8 \) `{
* ^* n6 `& h* z* R};
7 _' O# V6 ^  R
0 e8 D% i( U5 m; {static struct platform_device da850_evm_tl_leds_device = {) W/ v0 Q* s2 T) ^, J. y! t+ R
        .name                = "leds-gpio",: e2 I2 h+ t+ A( t
        .id                = 1,
9 U% D' v/ h2 |6 M# g' f" c4 q8 d        .dev = {
+ ~* h/ c; B3 @) m9 z                .platform_data = &da850_evm_tl_leds_pdata,
3 j% K! [) @& g+ }  o5 ]1 P) y- l                .release = led_dev_release,
- k- Y4 u. s8 \3 z% w# E$ G        }
# `6 D: A/ D. K5 }7 r  r* }; r};9 M) d  H* T4 ]# s5 q3 c
( l/ ~" J6 T% ]! y! N5 I% X8 ?
static int __init led_platform_init(void)
! i* b1 G; F) j! U9 N) |- Z# t, G( m0 d{' Z8 C* D/ E! }
        int ret;2 J. j0 j4 N: m  O! v- o
#if 0; {# P% ?) g3 I8 S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: K/ L7 e3 y5 d+ F. O1 a/ ~! ?$ [
        if (ret)
3 P( s2 s+ ^1 A0 [' \                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 F7 I: K7 K6 j. O& S
                                "%d\n", ret);
. ^. r6 G1 J; ?9 f7 ?! `#endif
; g- h+ W. A3 B2 i. ^0 `        ret = platform_device_register(&da850_evm_tl_leds_device);
" ]6 W# `7 H: w6 }6 F        if (ret)
* [# ]" |( r& ?3 t                pr_warning("Could not register som GPIO expander LEDS");1 I" J9 J' V/ b* z, t; ?3 \% }8 h
        else8 s+ R% H$ G0 k1 O3 |1 v1 J
                printk(KERN_INFO "LED register sucessful!\n");
! b. Q5 N7 G- w4 Y8 e7 W0 z* _. U: p; B& i' {+ A9 d
        return ret;$ A) H0 L$ {2 k+ h9 S  J& ~$ R
}" }$ k* j% ]% h" w
( \* c* ~! ]9 l/ d* n# F
static void __exit led_platform_exit(void)
. V& K6 h2 e) E3 l6 w+ \9 i{4 ]% p4 J: _& G9 B7 m' }
        platform_device_unregister(&da850_evm_tl_leds_device);" I3 u; p1 ~7 q
5 R; a7 R% h  `8 o' R( r, z8 M
        printk(KERN_INFO "LED unregister!\n");
* H9 p6 R; K! ~}. L, @1 q. q8 `+ I4 i! T: T

3 W+ k( v; O! {( p8 }& ]module_init(led_platform_init);
- c5 C1 L* b9 f- ]' ]module_exit(led_platform_exit);
: t7 d0 o" q7 O7 \+ T  ^' q5 p3 o
MODULE_DESCRIPTION("Led platform driver");
) }6 T6 c% t8 JMODULE_AUTHOR("Tronlong");8 `! [. D- F# ]* m' N' D! u6 S
MODULE_LICENSE("GPL");- Y+ x4 `3 l( O* b9 E8 M" D1 |4 z1 u% `

# o: @/ y7 L) M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-29 15:50 , Processed in 0.043601 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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