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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" _# f! b6 m* r! w
#include <linux/init.h>3 z; }; z, j0 b7 o5 `  b
#include <linux/module.h>" w* Z0 i1 t% q7 m+ z( V. k
#include <linux/kernel.h>
9 _) Y( [+ W4 p  I+ D3 u1 n- p( A#include <linux/types.h>- L6 h& H* a5 v+ I. _, o
#include <linux/gpio.h>
- Z$ W0 J7 V5 r! R8 ?#include <linux/leds.h>: F5 S. n# i  c& O# }
#include <linux/platform_device.h>
2 p1 W; A3 u( Z; T3 ^1 R; s! w' q; O" S; Q+ Y3 A$ W/ s* p; W$ u
#include <asm/mach-types.h>: Z* C/ u3 A9 R+ N$ n8 p1 e0 k
#include <asm/mach/arch.h>
& x+ q+ c; d: r& [" o6 v#include <mach/da8xx.h>( |" l( t/ b; K. s
#include <mach/mux.h>% k. U8 l* E- Y: s4 |+ y
: B1 ~, Q; b2 \: s% H6 X! [, ~0 u
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& T- e: d* v0 R6 a% A6 j- a& J/ y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 @  K- ]% B! `: Z1 e3 A, U1 `6 e& F
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). ^. I9 b2 r) O9 ~% T. Y! n6 X
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ S& [5 B) s; |6 {( j9 B& j
5 w% r2 ]# X$ a
/* assign the tl som board LED-GPIOs*/: K2 ]& h' w% Q8 Z
static const short da850_evm_tl_user_led_pins[] = {
* W- Q, Z) N; j& x; S* H, g        /* These pins are definition at <mach/mux.h> file */
/ l3 q6 Q6 ]# m: N1 R3 S  o: P        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 Y: o) Y9 z# Z        -10 n# x1 B8 Z8 i* ?6 @
};
* }; }& j1 t8 C( J5 l) \1 G2 Q: w6 d0 z, F: n
static struct gpio_led da850_evm_tl_leds[] = {
* {, A( t) \; W        {
8 J4 w5 q. @% D* i' l3 p% i                .active_low = 0,
! m1 M8 d( w. m: O6 t+ r% L                .gpio = DA850_USER_LED0,' c( q7 {# I$ ?8 n
                .name = "user_led0",
9 C) |" y4 Q" e, j# m                .default_trigger = "default-on",
3 c5 }3 C5 t0 P$ d7 C        },$ s6 P3 M9 H# v% Q  \( u
        {9 N! P2 {) `6 U: y8 `) O
                .active_low = 0,' t8 ?$ Q+ j( B' K; y: T
                .gpio = DA850_USER_LED1,: D. z8 x* _6 [, e
                .name = "user_led1",
! z# {4 n3 K7 Z! L) D                .default_trigger = "default-on",/ ]) x' ]* S, H: ^! A
        },! m' X2 P- B- Z# b  u' H* ~. V) J
        {3 l, G9 k2 T0 Z4 e0 d
                .active_low = 0,
3 x# `' h8 d7 B                .gpio = DA850_USER_LED2,
3 c1 C% i3 {1 m9 A                .name = "user_led2",8 p$ K4 v- v  H! u
                .default_trigger = "default-on",2 _, O. y9 ]! @) t
        },; Y0 n* x- w% g# S+ @  n) [9 s
        {
. @7 z3 x( z5 \: B/ N" r7 ~$ i- y                .active_low = 0,* b) s* ]1 {' N
                .gpio = DA850_USER_LED3,7 g% b: h0 e8 u6 _" x. T- }
                .name = "user_led3",
0 ?- G; j6 s$ i) S                .default_trigger = "default-on",$ v9 A# x6 I6 C" L
        },- e. a; z  V) Q4 y# `- J1 i
};
1 l& G2 N( C; N/ {: R/ e2 _. v6 S7 Q4 v0 {; ?
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 O1 B# s% p3 S% O- }# z7 c        .leds = da850_evm_tl_leds,, z' y: s3 e9 ~7 R8 H! j
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  o7 S4 B' i( V* Y# u
};
. X- E+ A3 Q! h1 @' C+ d4 _9 d' K+ O
( l" L! f$ d) ?- k" ]. R. lstatic void led_dev_release(struct device *dev)
# m. K' d( W$ T6 ]& ~2 r* T{
1 |$ z; H' X8 \% r* l};' Q, r9 \8 V; Q' G) A& `

! W6 ^2 F) u. \+ o4 Z, u8 G5 a) {static struct platform_device da850_evm_tl_leds_device = {
. x- F1 [" S. N. e3 ~4 _        .name                = "leds-gpio",7 ~* M  j/ @* K( n0 X
        .id                = 1,( a4 P" l4 b6 _- H$ ]4 q
        .dev = {
  }2 ~6 e. n/ y2 G, l                .platform_data = &da850_evm_tl_leds_pdata,# [/ Y* `2 K  c. {( z& M
                .release = led_dev_release,
* v3 s) B* m* V! f        }' Y% m1 M! ^8 _- Y! [
};
2 `) ]# C% |7 C$ s- J9 Z, e
7 E. N; x- l* B+ j0 W6 estatic int __init led_platform_init(void)
- D2 g& t; @$ ]{, i, i, P# `* d7 p! [
        int ret;% w7 M/ m5 \; R
#if 02 ~: q/ u0 G% O0 O
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
" I. a4 c+ q; i- n8 I3 A8 P        if (ret)/ u1 F% T4 {; [0 @7 l2 ~3 \" a9 j# h
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 r9 ?- M; d, ^8 R- l* J; y                                "%d\n", ret);
% G8 P; l% U. G' ]3 ?1 r#endif
& Z9 d: W1 L, T, O4 k) \- ]        ret = platform_device_register(&da850_evm_tl_leds_device);
: z# V+ z3 o/ h" _1 N        if (ret)/ }: A- j" V- V
                pr_warning("Could not register som GPIO expander LEDS");7 L( x! H" o9 `+ ?6 a
        else+ S$ v3 E& S. E7 n  x( r( ^
                printk(KERN_INFO "LED register sucessful!\n");5 k% V7 V* o# o
% V8 Z2 A- @. n7 y7 x2 b
        return ret;
- I# A& ?5 P0 e& K9 M# E. R/ |}
  m( N% s) d  T* D- R4 S# ~5 f3 O
9 y6 k' S$ v1 q& u8 Vstatic void __exit led_platform_exit(void)
/ K: w2 _3 ~/ r& @# D- N6 E, G{
/ G; G/ O  L) q: j& r: F        platform_device_unregister(&da850_evm_tl_leds_device);1 S* q+ U6 ^1 J: c4 |* a
6 a- q3 p" n% V( h. Y  D% X
        printk(KERN_INFO "LED unregister!\n");
8 C9 E$ P8 x8 @+ K) w}& p* b: J( f9 O0 K: e
1 t* F& z: s. i* s
module_init(led_platform_init);
" s2 t8 P! S8 |* \) j* Z6 r8 tmodule_exit(led_platform_exit);$ M& J1 S  s) v& I9 i  s

8 i8 ]. C; ]1 y* C& U1 C+ RMODULE_DESCRIPTION("Led platform driver");3 w& R4 W( q0 t3 Y4 G3 J( E3 [
MODULE_AUTHOR("Tronlong");" Q0 b2 T+ @; a0 c2 |" p" W
MODULE_LICENSE("GPL");3 J* G: X7 w3 S# N, o

; F2 E* y. X& ?( z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-21 01:16 , Processed in 0.039403 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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