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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# s3 D8 Z' s) `4 i3 u/ C  c6 Q#include <linux/init.h>
3 q3 m3 G% ~* h: ]#include <linux/module.h>* S+ M" j- I- k
#include <linux/kernel.h>* r( J9 l5 E" R) A
#include <linux/types.h>1 `4 r5 Q+ \% l  H. a) L4 I
#include <linux/gpio.h>7 l( w# j, R' P# K
#include <linux/leds.h>: W: Y& d& v" Z* P# h
#include <linux/platform_device.h>
1 a( C5 c" _; i5 T0 S' o& `3 n' X4 T" H8 @8 r& Q! g
#include <asm/mach-types.h>
6 u4 [9 V& d; M#include <asm/mach/arch.h>
: ~9 K  o: p' ^' Q- E#include <mach/da8xx.h>
( K) L/ b4 \9 J: l: e- w#include <mach/mux.h>5 d" M& L7 j9 U9 v+ {
# [7 m3 b; S* L" `
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 p, b  |6 k9 n7 A- H#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 r  U, I- w* ^
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 }9 e5 p. s5 [, d8 g7 F# Q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 l7 P" h' |4 z0 Y5 E. @
% z& |4 b& g; ~) S% G) g1 \8 E  A3 i! N
/* assign the tl som board LED-GPIOs*/
5 B. {  k: S, G& ystatic const short da850_evm_tl_user_led_pins[] = {2 ~4 i. f) o' v# x& b6 Q! }% L
        /* These pins are definition at <mach/mux.h> file */
" W+ h5 ^5 i2 D' u. x        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ B8 ~3 D8 }* ~/ T+ b        -1) b) j4 C( a/ c( `/ l# u( {
};
' x' B2 s% O2 d$ B; }) D! O% z& k5 O/ T0 D( y
static struct gpio_led da850_evm_tl_leds[] = {  e+ n4 I) ~1 e! ^2 t
        {, R  {3 ?9 b# K. ~+ |, d: n
                .active_low = 0,# F' ]6 G  ^' }" `) C* }. a
                .gpio = DA850_USER_LED0,
4 E! q1 x; k6 |$ g* i                .name = "user_led0",/ N0 l& K/ y+ f# Z* ]$ i6 o( Z! O
                .default_trigger = "default-on",
! B9 H. Y/ P# }+ m8 B% d. K        },
0 L2 H0 d: |8 y0 G8 U        {# \4 Z3 R* a7 i- a
                .active_low = 0,: s# a! K0 [  |$ A6 g& m
                .gpio = DA850_USER_LED1,
; v3 @1 Y1 }6 P  f+ r                .name = "user_led1",. T$ c3 ]) G8 ^  t
                .default_trigger = "default-on",
; Z! c( _/ O5 P9 B        },
0 I0 R7 V- I& d        {( a5 t2 _. a6 T3 v: h
                .active_low = 0,0 M, h7 [; Q; O& h- S, J5 O
                .gpio = DA850_USER_LED2,% F( _5 o- ^1 {, x4 j6 m
                .name = "user_led2",
# M; r" l, y, j2 ~9 Z- d                .default_trigger = "default-on",' o' a7 q# ^6 n) ]2 O" O
        },5 J  \; r. J: k, y, k9 B
        {
* P, Y0 p& I- E7 y8 H                .active_low = 0,
+ X  F7 Q- R5 ?( b                .gpio = DA850_USER_LED3,
  b  a8 k. Z& {/ V1 H9 m                .name = "user_led3",
/ ~3 u7 J& o9 q- |" o" L2 p                .default_trigger = "default-on",
- z* ~* f" `  S( x: e+ |        },
% p! N' i6 M1 f0 y- ?$ v% R+ a};
, Y$ g: n' F+ w: _( r
: \" O2 K5 P+ U' x2 Tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ O: R" p' Q. w+ b6 ~( K
        .leds = da850_evm_tl_leds,
- l. g& _- ~& |& j  @        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# V1 p  u6 W1 p$ r};
! w4 f7 u8 q4 v% Q+ o5 X; |$ i4 E. z* D5 D. ^
static void led_dev_release(struct device *dev)
$ d% @) I$ c$ D; Y% J5 Z/ ?6 I{
1 o6 X) X+ L( U: r2 Q4 a};
2 d* g( R% U7 g5 ?6 V1 u8 K0 R; p& h5 @
static struct platform_device da850_evm_tl_leds_device = {" V2 V, Z- ?2 g/ p0 v8 V
        .name                = "leds-gpio",% @! x3 K3 _* R7 y! o( r* b
        .id                = 1,
: {( S: P4 K' i        .dev = {  J; i9 |7 ~, R( k0 T
                .platform_data = &da850_evm_tl_leds_pdata,$ n9 z% T/ c3 P. S* [1 [9 K
                .release = led_dev_release,0 k" M* @$ c5 k1 p" Y1 `9 z
        }
! l6 \; g6 a/ c8 l( @};
: w/ _, h, V7 B# u8 p1 a5 o' S4 h0 e3 }" v5 R8 r( l# P& }" ]# Q
static int __init led_platform_init(void)4 h4 ?. O, d' n* t, R  t' G
{
. _+ O- `' I* M4 S2 l$ f( ^        int ret;
, i( j! g+ K- {1 ^; Q& F/ a. o+ c#if 02 F- N5 d/ {- G$ l+ o" B. f  T
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 v9 V" b2 y5 |3 o        if (ret)
* S9 ~9 H* z$ O$ ]6 @                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 _) @. G: F' f# U% _1 \, R                                "%d\n", ret);; W9 ~1 d8 X* y2 R1 l' H/ U
#endif( {1 U9 L  q% d) z
        ret = platform_device_register(&da850_evm_tl_leds_device);8 q- ?3 y  T5 v  f5 i; j& F
        if (ret)
" D# s* n$ x4 H                pr_warning("Could not register som GPIO expander LEDS");' R  e1 }* Q2 l: [
        else
- _- L* d' P# ^& d! g                printk(KERN_INFO "LED register sucessful!\n");$ p# t- r" ?6 P1 R* c+ Z

# E, N4 v% b) P$ r# r1 r' ^        return ret;
" k8 h9 j+ K  j8 A1 X- H8 R}. |7 \& R3 H( P/ i  f: k8 T

; o% A$ [! @$ Q1 [3 ]' Y7 @; ustatic void __exit led_platform_exit(void); ?4 C! b8 c9 H" p- l" z( w9 t$ P
{' J; T5 X8 _: W+ D1 i
        platform_device_unregister(&da850_evm_tl_leds_device);
2 N; V3 _  o# Y: S: G$ }% F  d' s- B& k9 d9 r8 d
        printk(KERN_INFO "LED unregister!\n");- B! B, Q2 R" A. U; A6 P: U8 [
}
- W& C: j# v& P& \0 H: {2 O: g  O- f( H, d1 p: U  V
module_init(led_platform_init);
. L' l4 m1 F( Wmodule_exit(led_platform_exit);
" y6 K& V/ Y$ U0 n+ i' v' T8 e( t1 o$ c0 Z5 K
MODULE_DESCRIPTION("Led platform driver");6 @+ B" S  J) d! j& r/ v) {
MODULE_AUTHOR("Tronlong");
) W' a; f2 N) y/ r  j$ B" ]MODULE_LICENSE("GPL");
- F8 L9 M0 J6 u' \0 c1 \
- M5 `* h% Q; k/ l* H5 `2 W+ r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-22 06:42 , Processed in 0.038502 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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