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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; M0 I6 w& i% |7 f
#include <linux/init.h>1 j( X! n, E9 j$ D% y: j
#include <linux/module.h>; A) U' d- M2 ?8 E4 ~% I' k6 O- V
#include <linux/kernel.h>" D$ X# m/ [, Q, r
#include <linux/types.h>
7 D6 t1 `" m  X( [+ _8 o/ _#include <linux/gpio.h>1 c4 c9 w+ O7 r4 W4 m
#include <linux/leds.h>1 J1 S9 R5 h, ?/ p! r
#include <linux/platform_device.h>
9 h; B3 O  u. Z3 t* l. d) I( k7 G- X9 ^. M! f& j, ~
#include <asm/mach-types.h>1 N! r9 x; X; A9 p  A7 t  j
#include <asm/mach/arch.h>8 ?# u/ X4 O% _% L7 L. F; x: I
#include <mach/da8xx.h>
" T& c. D  F& J6 q$ M' k6 z0 m/ f: i#include <mach/mux.h>, ]" f6 K+ s5 `3 v# {  c
6 F* D* s8 L" h# I2 `" L$ [+ ]$ R
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ y) v1 E0 Q) g& Y9 ?4 j: p
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# g* \, z/ `6 Q. j: |: P8 V8 L
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 Z* ^& I* h3 T7 b. o3 |3 c" j
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 Y" }/ \$ ~( d8 ~1 r& l8 J0 H; E! P( n. r0 M5 Q5 h1 [
/* assign the tl som board LED-GPIOs*/" S. @: k  h, }+ _4 I' d: a& H
static const short da850_evm_tl_user_led_pins[] = {- m; L! Y5 Q0 \2 v
        /* These pins are definition at <mach/mux.h> file */
: ?* C; j) a) s4 K( n6 V/ t        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& i% R  P* _! [/ @# E/ E, y8 ~        -1
1 x0 Y. P, \6 T  V2 ]! p5 k9 g};4 P7 G' n& Y1 U0 E) I

" \4 j3 [9 b* A( _static struct gpio_led da850_evm_tl_leds[] = {
+ }" P: d; R, J5 y& V" B        {
: X3 d6 e% T+ t7 y                .active_low = 0,1 _, _& j& y# m
                .gpio = DA850_USER_LED0,
4 ]0 }! x4 Y- S: z, z                .name = "user_led0",
0 u( Z* @, J0 a1 X: q, ?! S. `% L6 I                .default_trigger = "default-on",& o4 O3 ], {5 n! {
        },
8 N/ U* i" Z8 M8 ~; A9 N        {
( u5 x! |7 U9 K                .active_low = 0,3 d& b" y* L: Y
                .gpio = DA850_USER_LED1,  C& s% k9 U) c/ \. t
                .name = "user_led1",- j# L; ]; _0 ^8 k, w" g: t
                .default_trigger = "default-on",
. @/ d) K/ d6 a6 s% g) t        },) w. e4 s9 N- g4 v) W( g8 z$ |
        {
+ c& A- m! v0 W; z                .active_low = 0,( [: G' x8 ~" o9 m' K. p8 i
                .gpio = DA850_USER_LED2,
3 e7 c0 ~. f% b                .name = "user_led2",
! j. m' h2 M! w1 N8 d                .default_trigger = "default-on",! |% [% m# i% h! _/ h; h# t. O
        },$ W! G! l# v! H
        {- Y9 V1 h. z$ i2 C0 M' ^  s
                .active_low = 0,
+ x4 O4 K9 @! b5 O& O- |$ W                .gpio = DA850_USER_LED3,
% x5 M  h: r2 w3 w8 C- ]                .name = "user_led3",
5 f: H+ Y& s; B+ t) I                .default_trigger = "default-on",
, p& Z$ g5 t; U        },
: H6 |: }' E* d) \0 A};# o- f, E9 V7 G: p

. Z# Z2 m# |, J3 L  ?' p8 Ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 J8 k1 W$ f( R9 {# i* e
        .leds = da850_evm_tl_leds,9 a# X  l  E% a0 K. N
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; A7 I( H8 I9 \0 |
};" Q, g. r/ X4 t. a$ u

/ o; Y: Y0 Y2 Z3 a4 f! W( V, ustatic void led_dev_release(struct device *dev)" T5 }3 l( Z2 z: L4 f2 c% ^
{
. ^! g6 ~. H4 G5 U* s4 z+ d* P- h5 c};; Y) p' t4 h- |: l! ?, a
6 u( y( H- e  B4 @* P4 p+ a  g# K; g
static struct platform_device da850_evm_tl_leds_device = {/ Y# T# b' C+ ^- D
        .name                = "leds-gpio",
: g7 d. t1 C3 z        .id                = 1,
1 D' Q+ d, x4 _- l( X, c: d8 ^- i        .dev = {
+ `' }( k  |! G3 U4 `                .platform_data = &da850_evm_tl_leds_pdata,  M8 v& `( ?% @  J- s( G" h
                .release = led_dev_release,
# ]2 n4 }$ k& L  @# t* Z* d2 S" @" W        }
; c7 z& o: D% ?3 _* ?0 w- r};
- {# p2 y5 J. F& Y, K7 F9 R5 [
. M5 u5 p, N- I! Dstatic int __init led_platform_init(void)
. k6 h- {# l5 q- x! }{  C7 M% X1 [- R  t+ Z. Y  y& q+ j
        int ret;
; o2 A- R8 y  e% T0 ^% |, t#if 0
% j! V6 I( a* m  d        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- n9 U" ]5 h, _8 z2 b8 b
        if (ret)
+ Q$ u$ k1 K. p8 h% h                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; ^2 Z- n# f$ G; \7 t                                "%d\n", ret);) \' F0 M  t% [% U% b1 O
#endif% q8 o/ r! B; J! [7 {3 d, s9 j/ Z1 u: N
        ret = platform_device_register(&da850_evm_tl_leds_device);0 q7 H- a0 @6 v7 U6 v4 ?0 ?& \3 X
        if (ret)
& u# y. v: n( T* k                pr_warning("Could not register som GPIO expander LEDS");* o7 u. P* Y2 F
        else
# i" u7 ^8 P7 Y, |                printk(KERN_INFO "LED register sucessful!\n");% h7 m( s& [+ K( @# n1 b) B- n

# @' Z* j$ E4 K1 W; X$ i. f$ F- @        return ret;6 X3 o* q5 T4 E- y* G
}
" O5 G3 O/ Y: M" Y$ {5 e7 _2 o% L: E( i! ^1 c8 d. i
static void __exit led_platform_exit(void)2 j, {' X: k0 Q" V
{! K" j; y  N& I) U$ {: E7 j
        platform_device_unregister(&da850_evm_tl_leds_device);+ r$ \$ @8 ?6 s* S5 r
. y' x+ [& F/ j; G5 Q) v
        printk(KERN_INFO "LED unregister!\n");: u7 F5 M5 @7 X5 G
}
( e2 O' V  @- h1 u, P; \  M/ Z* c. j( \+ A/ W) E4 m; ^. f
module_init(led_platform_init);- x# {- E* ~) A6 U% \
module_exit(led_platform_exit);
  L& K4 C* T6 F: U7 _+ x& o
( Y/ U$ e7 h' pMODULE_DESCRIPTION("Led platform driver");4 @* t1 l9 `$ e2 r
MODULE_AUTHOR("Tronlong");: ~( G, C1 l+ D6 o) W% X) J% X" S
MODULE_LICENSE("GPL");' D* ?, b$ r/ z1 J# A5 H

' G0 l5 [( \9 R2 F3 E' Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-4 06:30 , Processed in 0.040048 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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