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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( p5 D6 G0 M3 N( Y5 A) m
#include <linux/init.h>
0 o& F/ Z3 ]" G6 N; j#include <linux/module.h>
! W( B+ {% h; c8 X#include <linux/kernel.h>! S4 J) r7 y) }1 @5 I
#include <linux/types.h>  w$ x, h6 u0 i. Q
#include <linux/gpio.h>+ Y0 l5 t' H, O( I  U3 n
#include <linux/leds.h>' ?3 w& g. D1 G' P( Z
#include <linux/platform_device.h>
3 \: v. |- h! m' T! o, [9 a
/ n0 |5 i3 W0 r# ?7 e8 z6 `9 J#include <asm/mach-types.h>! e) T% R; S9 J9 v6 I6 _5 n
#include <asm/mach/arch.h>/ y7 Z) N: p( z' L) k7 l
#include <mach/da8xx.h>
2 N6 ]" A9 s% x5 g* E5 g#include <mach/mux.h>: I3 u( P0 ~6 ^/ e. b

% u$ j* a8 J2 C. X" t8 J  a1 v1 \#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; ?7 {7 G/ e1 @1 I1 L6 p1 k5 d#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 I/ L4 D1 T$ r
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ r6 B, k4 x8 l' @3 `#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: v; v% L+ G8 Z4 [' S+ |
, I- Y! C1 Q% D4 N' C/* assign the tl som board LED-GPIOs*/$ ^8 m; R  H" I& r# \$ X* j" j) r; A
static const short da850_evm_tl_user_led_pins[] = {. B' o0 q3 k5 c
        /* These pins are definition at <mach/mux.h> file */
2 m" \+ z8 s9 c9 {8 M3 x# M        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- a$ O3 i7 ^* y: _3 m. L
        -1
- C3 l) _6 E1 ~" n$ F: p9 [};
9 n% [% h4 M! ]5 R1 x! V
; o) t7 Z& x, d( ~2 J' Y" xstatic struct gpio_led da850_evm_tl_leds[] = {
' h( X' g& f" H' c( `" ~- [        {/ G6 w+ b' W+ h0 \
                .active_low = 0,
4 g! H) `2 _. n  H" B7 |! w                .gpio = DA850_USER_LED0,
# l& H4 x3 F5 Z% f: G) w                .name = "user_led0",) E/ ]/ ^/ y7 H5 t# C# l+ U. f2 H
                .default_trigger = "default-on",
! Q) c  }8 n: |) o  j2 O        },
7 b! ~5 I0 g. D, U8 Z! J% P        {
' P, z$ H* b: G                .active_low = 0,; U+ n/ E! T, N7 K8 [
                .gpio = DA850_USER_LED1,
. j7 m" q, J5 l3 [                .name = "user_led1",
2 |8 C6 A' d4 h( l( z: L" {- h: ?0 I                .default_trigger = "default-on",
8 P0 \, S7 A" E) j1 ^- {4 j2 J        },7 g4 J$ \0 [* d9 k( s# x
        {) ^; K$ B- r& W, S3 D3 g
                .active_low = 0," s6 k+ d: f8 P3 J" i) h
                .gpio = DA850_USER_LED2,
2 }" a6 I6 x' v- C5 c" u" c                .name = "user_led2",
5 D6 f6 H6 n+ S+ e' @8 y                .default_trigger = "default-on",
) @2 X. j. s( k* @        },
/ G' `$ ~2 E: A# {* r        {7 R9 y! K* n" \) m0 b
                .active_low = 0,2 o) }8 ?3 {) Q/ R5 ~. s1 p
                .gpio = DA850_USER_LED3,- d$ J6 E% g) i. p) G
                .name = "user_led3",
7 e) x% r& _+ O  L                .default_trigger = "default-on",
# x& M& |3 F& s6 B- ^# g2 M% I' P8 k( j        },& x) m( g; G; M+ I/ n4 e9 L) e3 a
};
' n. [4 u3 o+ _4 i* J" o* Y" J5 Z7 f
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, _, T8 @2 r  s; c( t        .leds = da850_evm_tl_leds,/ Y& e" F) d/ I$ r# Z3 I
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ j9 b$ Z7 `' R, H# m% Z1 I};
$ {& e4 w  h$ S
* v7 @6 n: R5 E) Cstatic void led_dev_release(struct device *dev)5 v& `) R4 u. c* Z( y
{
: [; O( ?. w" |& o};% t! Q  d; B. \3 j; v$ h+ y7 T/ {

- T5 v  e3 g/ N! ostatic struct platform_device da850_evm_tl_leds_device = {9 R( s8 a+ F" I  M8 H
        .name                = "leds-gpio",5 f* m% a' C, E, H. @) a2 T4 A
        .id                = 1,9 O; H0 o' R; T' [" J) A
        .dev = {; K; ]! Y9 t+ x( h& z3 m
                .platform_data = &da850_evm_tl_leds_pdata,+ b- v; |" W2 N/ ]2 |- L
                .release = led_dev_release,/ p, M& J. b, A4 p& e3 L
        }
; c+ Z- g' C) u# I3 }: b};
/ T2 f+ B2 A, m$ d, m$ Y
* k7 e- m( ]6 T/ kstatic int __init led_platform_init(void)
/ C8 W: _$ }/ a8 d9 l{
7 M$ c6 C& F' C' a" q& w# y        int ret;
( X" r) T& n! f#if 0
# z* m1 H" U; f        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 ^* i( U) V% n( m$ j        if (ret)" Z! o5 d3 ^& g4 G
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ H; H; T- p+ }: B                                "%d\n", ret);# b; D  ^' G$ r+ B9 J
#endif
- C' K/ ?, r2 H# ?6 \+ D! K4 p        ret = platform_device_register(&da850_evm_tl_leds_device);
) q4 `9 s( J) B  ]) n        if (ret)  s4 ?9 ^& X! m, u1 S: r
                pr_warning("Could not register som GPIO expander LEDS");
* \9 s4 O5 m* L) ?5 c' O        else" H' b) u1 X- t& L2 I8 j
                printk(KERN_INFO "LED register sucessful!\n");: c6 R( k0 o  V; o3 P! Q4 Q/ L7 n
( n7 J8 C# u2 K% {% P
        return ret;
- A) e$ I4 ?+ s6 y) q9 b; h5 X' X}
4 E& p* @+ ]8 b# n; E: g2 B- W) n
5 A! M; i1 h( ~5 S2 y* fstatic void __exit led_platform_exit(void)1 R+ y6 D7 j) D1 M
{* a8 v  T/ W& [" u: ]8 y
        platform_device_unregister(&da850_evm_tl_leds_device);% j& B2 }- P7 Z1 d; y6 p
/ F+ {' H4 I+ a
        printk(KERN_INFO "LED unregister!\n");* }0 G) K' M7 g. j$ z
}
! O& W* F( s2 l2 ~1 D/ G+ W7 A# G9 |
2 O- @( f, d$ R7 z8 bmodule_init(led_platform_init);5 W! n) p( [( h+ }/ M
module_exit(led_platform_exit);
' m4 J: B) q+ j0 ]: K; W) Q. `5 i* [" V1 Z+ ^
MODULE_DESCRIPTION("Led platform driver");
4 N. W  q, W! [0 T1 iMODULE_AUTHOR("Tronlong");6 H+ U  {1 w. o: w5 |4 E
MODULE_LICENSE("GPL");' \; U& _- E' h9 O
' v8 t% Y  J3 F: R& V( ]- d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-31 18:54 , Processed in 0.045939 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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