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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ D7 Q6 X. N! z/ {7 \
#include <linux/init.h>' z1 C0 q  i2 Y% Y  d4 A% v
#include <linux/module.h>( x, c; ?9 |) }) x- U
#include <linux/kernel.h>
8 Z% ?" c0 A. _- Q5 F* x4 U#include <linux/types.h>
  ]  a  y- B! P8 D#include <linux/gpio.h>
+ {( B( P; t* W( ]#include <linux/leds.h>
2 c' F* `* f- v, ?" Z% U- Z#include <linux/platform_device.h>
1 m& o" ?5 n+ U$ G7 G' E/ A, n; M$ |) j/ C" h0 F( r
#include <asm/mach-types.h>
$ o8 \7 ^7 n3 ^: h, p, x#include <asm/mach/arch.h>2 ]3 U. l8 Z4 W9 V
#include <mach/da8xx.h>
4 x% y5 H' j4 ^( u4 d#include <mach/mux.h>
4 m# U" u9 s# H5 V5 W/ v* Q! f# a# N4 n3 p6 b8 {( K& v
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' `& [: g% ?! t! }* r7 Q# d) Q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# k) i6 K0 ?# \# W: x: G#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 O7 F& M1 _4 ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 R7 ^5 m4 `- b- Y+ e% ~
( A, T- H' a; G2 M
/* assign the tl som board LED-GPIOs*/( p( s& D4 p- Q2 Z( K
static const short da850_evm_tl_user_led_pins[] = {
' T( K! F; }1 ^; a        /* These pins are definition at <mach/mux.h> file */5 K8 q, C* U+ N; B; D" g% g
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: q" p( @" L/ ]+ _8 O, @
        -1, e! l) c! q6 ^# K' M( S8 O
};! K1 y2 t0 t1 P) u0 Z
5 D$ F0 Q# J$ `& [# ]0 k, m6 _
static struct gpio_led da850_evm_tl_leds[] = {
0 ~# W. n! D* N2 I        {
# ~4 \, ]: s7 ?8 [! M& C1 R                .active_low = 0,
8 V3 |$ c0 L5 a/ g4 P8 g# v8 p                .gpio = DA850_USER_LED0,
; }, E, i1 ^4 B& H                .name = "user_led0",
3 U  I/ M! Y" |                .default_trigger = "default-on",
2 g- l' H% s$ P1 e4 I6 e        },
/ ?/ l, f* K. m3 A: Q' U7 c) M        {
, w% I8 d* c, v$ I% ~8 ?1 o                .active_low = 0,  L; M1 M  k8 L: z) x. i) W
                .gpio = DA850_USER_LED1,' x5 @& A% e- a+ H7 M
                .name = "user_led1",6 ~5 Y. D0 {: b
                .default_trigger = "default-on",3 V% k' N" u# O9 S% f
        },
) q# U! }3 r  r8 g7 e        {5 I; j' G8 {. V* Q- ?
                .active_low = 0,
$ _/ T+ R0 A- w3 K                .gpio = DA850_USER_LED2,
" z3 ~; K. I- ]                .name = "user_led2",
% x+ D$ r; M5 K                .default_trigger = "default-on",
9 C/ Z1 [% r8 g9 ~0 P& w        },9 G3 }9 l3 D. d
        {
5 L; j: J  T; \' H                .active_low = 0,
1 }# ?: ]: g/ v/ m2 b                .gpio = DA850_USER_LED3,# Q' q! V4 k/ S% j' u  N- T, q
                .name = "user_led3",5 D/ @6 U; E  y9 T
                .default_trigger = "default-on",% O' K6 v9 q( A- |/ ?) A% l
        },
( i. \2 o8 |+ N% Y};. _  W9 ~8 G6 x
: K' p& |$ b; I
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 u! M* Y% \& ?% N
        .leds = da850_evm_tl_leds,0 M# G! K0 C) u! O+ u
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ l" F" n  ]# t% }
};
/ W+ E- ~; Z. h& P, z) c- \
" H" P6 u) r; q! w& |4 Tstatic void led_dev_release(struct device *dev)
& @* w4 _$ f& t; ?/ \# \* j{( w9 O8 F2 [: {( T8 w
};
) h5 H0 J7 a0 S' I2 ?
/ B# c% t2 Z: C+ \3 ~4 u2 T# @static struct platform_device da850_evm_tl_leds_device = {1 _; S% \* N  z+ E& o0 I
        .name                = "leds-gpio",
- q' ^, |7 @8 b        .id                = 1," d3 H+ [' Y1 R* d" A5 E+ o
        .dev = {
( w  O  r' _1 ?9 m" l                .platform_data = &da850_evm_tl_leds_pdata,
, H* _+ u4 ]4 {2 Y+ o                .release = led_dev_release,
; V  K! v% m' b        }& q: l! R+ l( G
};" @+ F! Q0 a4 G# s/ |7 P6 f  K

, p# s; @$ k! z- f; G# r, |static int __init led_platform_init(void)
; M$ O/ H! ~# d. y6 S{
  R9 }' i' O" l        int ret;- A+ z1 C( A1 P; y) I3 S
#if 09 ]% M- `3 D0 {2 _5 X* o
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 T. X* o% G9 v+ j( `* k% v) i7 F4 d  s        if (ret)
# T2 n' P, G9 e  z3 g                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# A5 I- d5 \4 b1 p                                "%d\n", ret);' d) E& Y# G: m" P) F8 ~5 d
#endif
* r! N  ?6 L9 S4 K4 _! _        ret = platform_device_register(&da850_evm_tl_leds_device);0 q! Y" ?8 x, U- U  \) E& r
        if (ret)
) I5 T7 B5 [0 `                pr_warning("Could not register som GPIO expander LEDS");
  D6 K, v, W- r9 A7 q/ s0 V% b* ?        else
3 V1 P  }9 g7 C6 O. p" w2 ]                printk(KERN_INFO "LED register sucessful!\n");
1 k4 i1 m2 p- f7 _7 g
+ E& t& S9 S/ P) j) c+ S, k0 \        return ret;
$ \6 I. }8 Q" j; {% z/ p/ w# K; _( Y}
( l; r$ T) H5 `2 y0 U
# n% [" b, b9 P, ystatic void __exit led_platform_exit(void)) u! s% x$ [& `+ l2 n
{+ S" o0 ~9 W' f( Y7 G, @
        platform_device_unregister(&da850_evm_tl_leds_device);8 r( J. Y) v3 W: m
& \( A3 B' a# }# g0 P
        printk(KERN_INFO "LED unregister!\n");
. _3 v/ P6 E7 ?, u% A( r9 z}
. P( V) m3 a, S2 c; D1 j: N% q2 @  Q3 |1 L
module_init(led_platform_init);7 C/ s+ A) @7 T5 `$ b, z% _7 F, y
module_exit(led_platform_exit);4 t& G0 }4 h- `5 ?$ A
/ x$ N" f4 E: N( @" A# V" P
MODULE_DESCRIPTION("Led platform driver");9 g: [, ]8 a2 y# E) K, k
MODULE_AUTHOR("Tronlong");. k) A) j$ \* T4 ^$ E
MODULE_LICENSE("GPL");. E5 D. s7 o' ?: k7 P1 k7 E
  O$ T+ |. H# h- g5 f1 r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-9-1 17:01 , Processed in 0.052251 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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