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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' ~3 ^% ^) j# t8 N+ o/ b5 p1 ^- p
#include <linux/init.h>
8 O& S' t3 o, B  i: C2 V, A1 W3 ?3 G#include <linux/module.h>
- g. Y- W" L1 Q6 A8 p#include <linux/kernel.h>' C  C' @; E" {# v" s% P
#include <linux/types.h>
8 g( g  d6 a/ E, h) m#include <linux/gpio.h>7 d5 h/ `5 q, h$ T
#include <linux/leds.h>
, n7 Q  b) V$ v$ P' ?#include <linux/platform_device.h>
+ v" G6 ?5 \+ @7 ~) n
  A9 o9 J7 a4 ?0 ?, Y#include <asm/mach-types.h>
0 a3 r; D' P- u, E#include <asm/mach/arch.h>
! {5 g2 p/ a2 _1 O#include <mach/da8xx.h>! V$ g; `' [" ]& |" }5 P( w" O
#include <mach/mux.h>
. m% m; x; c8 y/ V; D" S! Z
) M' e0 i2 i4 c  Z2 T3 F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) U! T4 G7 v, e8 q% L
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% V, d& a. b8 g% B) d#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 b: ]& o, N; k#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& P9 v" a% b2 F8 X: ?1 U& I5 J9 [5 g' T1 f; O
/* assign the tl som board LED-GPIOs*/
: p4 e6 Y4 D8 J' @8 ]+ u: ^! Estatic const short da850_evm_tl_user_led_pins[] = {
5 ^- L  i$ b1 D8 t5 G+ a        /* These pins are definition at <mach/mux.h> file */
) s: P) G" c; }- g0 W+ R( U) C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! }: H- f* D! @# g2 N3 x
        -1
' V8 V) L  S% l5 j! e( Q" L};8 n$ j! _" I# ~9 x) r

/ C' o/ K) E$ {8 Astatic struct gpio_led da850_evm_tl_leds[] = {' U# T! t& f( F+ H9 W
        {3 A$ D5 l$ f9 O
                .active_low = 0,9 B+ h. i  a( A7 O; Z. x8 c% d/ W1 p
                .gpio = DA850_USER_LED0,
/ h: X! M6 D4 p6 ]' e                .name = "user_led0",
/ _% [) N+ a$ Z. e+ I) p5 u& P! A                .default_trigger = "default-on",
  r1 ?9 S0 K( Q% Z$ S" V$ E        },% O( E" Z4 _* Y8 x
        {
1 y- \! R# h8 g0 ^8 M                .active_low = 0,
1 W$ c' j4 U; ?' A% N" Q; _0 s8 A                .gpio = DA850_USER_LED1,4 }! X9 w( a: m! e
                .name = "user_led1",
3 t; v9 D* j7 K$ `                .default_trigger = "default-on",: x- a7 q" K( B( F! c. U
        },, m: z# B& u0 _1 e
        {& r9 w  P$ n& d. X  k
                .active_low = 0,
: _& x- T" o. {% E9 x                .gpio = DA850_USER_LED2,
% q! n3 H1 A! A6 m; }                .name = "user_led2",' o  s! T- I( S% Z  n% q; P
                .default_trigger = "default-on",
8 `. Q( |% G% T4 @        },: @) M; b! k$ _$ q
        {& |- T, J  _$ }8 j1 z# j) ~
                .active_low = 0,
: L: W, x$ P! ~, ]/ E% F9 }& b& f                .gpio = DA850_USER_LED3,3 F- [6 x2 G( ]. {, g
                .name = "user_led3",
4 H: K2 G5 g  a2 K- X                .default_trigger = "default-on",
5 x! M! i/ h* f. O* W' E2 j' f1 G+ G        },4 d9 {1 P2 l+ x. R/ N9 N1 ?0 L
};9 \4 T% h* `+ F/ C; O
2 _. H3 q% c; r' M8 X
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 t9 ~: Q. e$ H. R        .leds = da850_evm_tl_leds,; U3 n. i( ~" _" i* L6 G. p
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, P& F9 I+ l0 `9 V( G/ M
};$ ^2 W5 j3 o- B2 o5 Q  B+ q
! }8 v1 o1 ~2 |: t- B$ z
static void led_dev_release(struct device *dev)2 \" y# I  Z, M' O0 ]6 A: M- k
{
0 x% k) u4 S) P& }8 H( I};
; R5 g" N$ R& K* @1 y, O# ?# W3 ^9 y5 f
static struct platform_device da850_evm_tl_leds_device = {
' G6 l+ y5 i7 _- }        .name                = "leds-gpio",! \) r0 z: ?- v, g
        .id                = 1,3 Z! G0 H) c1 v: g* i
        .dev = {
1 Q* i5 G) v' v9 B0 x                .platform_data = &da850_evm_tl_leds_pdata,
/ [0 O; @2 ]: s* f9 H                .release = led_dev_release,
7 Q! C$ W$ `7 K: v: d0 Q/ a        }( a( u4 }/ C7 b% s- V2 y: U
};  f( y% b5 H- p- X4 A
2 X! L3 H4 h6 F# O; D5 B3 Y2 @
static int __init led_platform_init(void)7 `) B4 \7 s. R% \* P; Y6 ^% {
{
5 J5 ?* F  Q6 E8 i* R% F        int ret;
" Q, |& h2 G! I9 L#if 0
7 ^+ F; R- H! U+ }6 m        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 X  r& D, `- N5 G! v9 e' Q
        if (ret)
9 C4 x6 X  X+ ~: K                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 Q/ @5 s* c7 E; b( @                                "%d\n", ret);0 T& U' o; v; S8 F
#endif' k8 h1 f7 }8 n# c# t& k1 y8 {4 M' ^
        ret = platform_device_register(&da850_evm_tl_leds_device);4 E& Y- X* P/ X$ b7 R3 F: K
        if (ret): q! p6 {8 e1 V) j  e' p* q
                pr_warning("Could not register som GPIO expander LEDS");
. ?) z; f; W: q1 N8 h3 K6 ?2 X        else8 a6 o, u) \$ k7 ~1 J* s
                printk(KERN_INFO "LED register sucessful!\n");; i& z0 M8 e& N; U# D* G

+ S$ W  o8 M1 M9 T# h) L/ m        return ret;
, [: u$ c! E  w8 N}+ U3 P; e3 I% a# o) u5 x% c0 [

' Z  C. n2 n) i- Cstatic void __exit led_platform_exit(void)  y; f# }7 _+ L: H1 L  j0 k
{
2 g! s3 d; q$ l0 j, V# [        platform_device_unregister(&da850_evm_tl_leds_device);2 Y! u3 W% R" z6 m! `

6 U" Q( V6 f3 U5 u; Z        printk(KERN_INFO "LED unregister!\n");% t2 ~; i' d5 T1 a% @
}- \  C( d' A+ u  ^8 a( |) u' m. W
# G/ C2 Y! C* y  G* t8 Z9 {7 V5 O
module_init(led_platform_init);5 u* z" z" _' Q# D- d4 i
module_exit(led_platform_exit);
" G* o# {  P9 D- I1 B: g1 c* R$ C
' }3 P7 X, z' K& P9 N7 ]MODULE_DESCRIPTION("Led platform driver");
" E& L, e$ Q0 J0 C1 T# D0 VMODULE_AUTHOR("Tronlong");/ H0 I, r3 g( |+ Z
MODULE_LICENSE("GPL");
2 P! z6 _- T" Q5 H) x& K: L$ S. C, r/ m8 ^9 D, e5 t, }3 ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 06:40 , Processed in 0.038162 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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