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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& H- K& P! B: w
#include <linux/init.h># V$ |* a' N! W1 V! E9 a
#include <linux/module.h>
/ j+ e. i( @7 g3 W5 I: j; ]#include <linux/kernel.h>! W2 V% ^! T+ W; \+ h) c3 T) d
#include <linux/types.h>* j! ?  o$ }. @) ]  m3 H6 i- j3 g
#include <linux/gpio.h>  s) G/ L; Y0 z; W* V% v
#include <linux/leds.h>$ K* q) u  ], X, m$ G- w, ]& Q
#include <linux/platform_device.h>) j0 F: O$ W) x  d7 g3 Y. c
% n  b/ O9 y: g2 u8 L7 e# F
#include <asm/mach-types.h>  c4 I; n: n, X4 N: j. o
#include <asm/mach/arch.h>0 e! w& Q. ~, D( T
#include <mach/da8xx.h>
$ r# r3 p$ U9 z6 y1 \  O0 ^4 S  Q#include <mach/mux.h>
2 r; C' X# d0 x3 m, z
' X3 @* S% U& p5 F! Q* t#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 ]; K! d5 k5 e( H#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' [- S  Z0 e" q/ x  V
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" s- R5 {% U+ N% H( X# _#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! ^- y( _* l9 W$ R4 `
4 F; E& S  K  {8 |' C
/* assign the tl som board LED-GPIOs*/
- V. b  [3 U/ @7 wstatic const short da850_evm_tl_user_led_pins[] = {/ Z+ M% b; u. J% F) F# {0 E
        /* These pins are definition at <mach/mux.h> file */
" ?+ ]. Z3 h4 n1 s        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 d$ d) X2 w4 v        -1
' L$ _6 [! j: K1 O};+ y; h5 d  L5 X; {5 N& W7 W# k

1 l( S# J  G% C( w3 I" S- h( ystatic struct gpio_led da850_evm_tl_leds[] = {
$ o* ^0 a$ C4 Z. D! u        {
1 K2 o2 y6 B5 V                .active_low = 0,, x1 N# p: _# \
                .gpio = DA850_USER_LED0,
* C' V7 E( {# s; _; ~                .name = "user_led0",1 ]5 r( Q9 O! u2 [% _1 I7 a  C1 _# w5 D
                .default_trigger = "default-on",# h) Y* S" W+ c% u, C! v6 s! C
        },
0 D+ U- E/ S& D6 x* u        {
5 l8 C" p3 r% R( l2 T                .active_low = 0,9 B+ T) a0 Y1 O- H
                .gpio = DA850_USER_LED1,
8 _) e, i5 a7 Y% ]7 D                .name = "user_led1",
3 T4 n2 g+ M" w7 b# F4 H/ G                .default_trigger = "default-on",
8 _2 k" v; J, D        },
9 y; D0 n( {4 b6 [: r        {- [6 V9 p6 h% I: Z; E8 _& P# K& {
                .active_low = 0,7 l0 a9 W5 b1 H; ?* `
                .gpio = DA850_USER_LED2,
7 ]! W+ ^- |* w% u  s' i' J                .name = "user_led2",# t. w0 _7 n0 Z% c: C& d4 z& c
                .default_trigger = "default-on",
5 y/ z7 }, V# {4 B3 _6 ]& R( z        },
! T1 ?# O+ v) q' c5 t" N        {
! s2 L4 N+ j, ?6 A. n2 E2 Q                .active_low = 0,
1 u2 [* n$ V1 E9 T8 z1 _                .gpio = DA850_USER_LED3,( U. G; J$ h( s6 ]0 q0 U
                .name = "user_led3",
6 V0 l1 l9 j! L, O1 X                .default_trigger = "default-on",* r4 G) m: _6 h8 q" g, L
        },
" U2 v+ G! _# j* r4 I2 k};
) _  A( S5 j5 k4 \2 `. a) O& A9 D* S1 x5 u. _3 t
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ K' [$ i  ^8 U1 w5 B# Q9 {        .leds = da850_evm_tl_leds,( L! Y1 O* ]4 h$ {3 ]# D) ?* f
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. ~  v9 k9 z$ ~# a+ e
};
0 H0 p* o8 q) t5 G7 H: h! k  m8 a6 N4 \; ~9 _2 a$ P& F( u
static void led_dev_release(struct device *dev)
3 M" O3 Y* f' a1 k9 a6 a{
. R# T; o3 `5 R};% g+ ]* t2 c- ], y3 q9 {

8 A  P# [) H/ M0 q1 H( Q) wstatic struct platform_device da850_evm_tl_leds_device = {
" V" _/ c6 ~! F% U. {( X! U, S4 U        .name                = "leds-gpio",
7 c  o; G2 P. d" V; C4 r2 ^        .id                = 1,9 [" k* W! x0 n% S2 D+ I. s
        .dev = {
  Z' o2 T: [) x2 s, C' u0 N                .platform_data = &da850_evm_tl_leds_pdata,. a* d# C- u2 d1 r7 S6 T
                .release = led_dev_release," G( m( s  _8 c8 v2 I' q0 @
        }) y" \; A/ s! ?& R: J$ @
};& }6 n/ E  G, s/ P

; N* O6 {9 d/ A. i9 }static int __init led_platform_init(void)
0 K+ m% [. h: p{
7 M* P. h) W0 M1 ], C: \5 ^8 U        int ret;/ n& p& k. z5 y$ C+ _4 A9 l! y
#if 07 V+ s1 Z8 _1 x, g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. \, G1 Y- V* W  t  K8 U+ e5 [
        if (ret)! o% [4 y! S, a- B
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 Q, b, ]; n: \7 X                                "%d\n", ret);: J, R1 V3 }+ M7 u: F
#endif# ^) ^. P0 F6 M/ `) ?  Y
        ret = platform_device_register(&da850_evm_tl_leds_device);4 U* m$ O2 p8 K: M9 L7 W% H
        if (ret)) m3 W0 s5 c2 I$ E8 C$ f" L
                pr_warning("Could not register som GPIO expander LEDS");
: q1 T' x6 z8 [" M% R        else
" l& H: A1 s  i3 n- U5 T                printk(KERN_INFO "LED register sucessful!\n");
0 Z& I9 E! d" C' O7 I; _5 R
! ?6 O7 r; h% \2 Y  T: ]8 T  O+ M        return ret;
- o9 s- I, ]$ W6 ~4 E}/ y- i* e7 f& T, a% j/ i* e# ?, b

; w) V5 m4 t0 m6 @# ustatic void __exit led_platform_exit(void)& X/ f2 y  t" }/ d* o; D" F
{4 @; z. C# C* E4 R- `5 p3 M
        platform_device_unregister(&da850_evm_tl_leds_device);: c9 h9 R  l: d1 r( ~+ Y% L
3 U; Z+ d7 [) r  h& Q: _3 ]
        printk(KERN_INFO "LED unregister!\n");7 V7 N' z( \3 {$ |
}' W! F; t2 F0 r3 L  w6 r  R
3 n3 t* |- u/ D4 o' ?; w
module_init(led_platform_init);
( G* C. t2 p0 x6 X2 omodule_exit(led_platform_exit);
, h  k8 u/ r1 @! u# b$ `4 _
" i" X0 w7 }; x# T+ k/ EMODULE_DESCRIPTION("Led platform driver");9 O$ [4 G6 \' p  p
MODULE_AUTHOR("Tronlong");; R: ^" l  Q7 v/ Y9 Q$ J
MODULE_LICENSE("GPL");5 l0 ~5 H4 N( W
1 Y8 b* h$ n* F) r1 f$ N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 00:52 , Processed in 0.040327 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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