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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 f" Y. }" j0 F7 g
#include <linux/init.h>
' h% j  T8 }% e* S$ R" b/ W#include <linux/module.h>- d" k1 D. M  w! M1 H! k
#include <linux/kernel.h>
5 T- q, K" g5 C6 b0 _( a#include <linux/types.h>* p/ r: x7 N7 F2 F3 G
#include <linux/gpio.h># g& H/ u+ {, W) S- e5 \5 n9 \
#include <linux/leds.h>
$ W7 z8 f, x" m# b9 j6 b6 S8 p$ W- {#include <linux/platform_device.h>
) @- y- \2 z$ h: R  T' Q6 o
6 v* Z2 ]+ x% j1 O8 M, F" H#include <asm/mach-types.h>. k. t- @  Q, ^6 }
#include <asm/mach/arch.h>3 k+ Y: {0 ^. o8 G7 M+ T
#include <mach/da8xx.h>
; F; U! H/ p0 G% [#include <mach/mux.h>% _% I: g& w8 X# ]
# e$ D* G. g, z9 N2 s) b
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 A' u% \, v3 Q. v+ m#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 x' S2 B, V$ O#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ r& p+ f$ M3 S/ S1 u
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) K! V4 K! k& O1 M

* {3 C4 e7 o/ X/* assign the tl som board LED-GPIOs*/  S% P; [& ~8 A* \
static const short da850_evm_tl_user_led_pins[] = {! q7 v8 J% [. p& F0 F, Q
        /* These pins are definition at <mach/mux.h> file *// V4 |9 ~' s& ~9 x
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: D: Y# K9 o+ w1 \        -1
* r- d8 |/ n& ~$ [. x4 W};, S9 T6 J% _  n' `6 y6 H9 I  c  o

8 K& v4 \! P! R, K2 i% z5 j8 C0 Estatic struct gpio_led da850_evm_tl_leds[] = {  s' j/ T! V1 V' b3 |+ _  T
        {
" q9 e) {$ g: I& d3 k" f, T9 x8 w                .active_low = 0,
% t8 ]) v0 U/ M                .gpio = DA850_USER_LED0,
7 n+ j( |. N3 s- E                .name = "user_led0",
! K* |+ l! @, X8 R. Q  W/ a                .default_trigger = "default-on",
7 T+ W, `3 g) J" V: W9 ~  T" {( n        },
$ k: l; \) I* D5 p2 v" x        {
8 v; z: ~, B* a. C" Q5 o6 c1 K# i                .active_low = 0,
0 R( n# q2 V( I7 A  v3 p                .gpio = DA850_USER_LED1,% ~) i$ C4 }  [' E
                .name = "user_led1",
; {( F( @2 @. `" {! g' u" [6 a                .default_trigger = "default-on",
6 B0 y& f4 }, J7 M        },, M( I: g2 X# m
        {
# z* W; X1 `! R/ c                .active_low = 0,
  I: l1 s5 y' w3 f; }6 F9 F2 e2 h/ Y                .gpio = DA850_USER_LED2,5 l; R9 \! t5 R( m
                .name = "user_led2",
+ Z: e# N5 j& s  G" ~3 s6 o+ t                .default_trigger = "default-on",+ P3 H2 x  w  R9 c
        },
) [3 W6 Q4 C/ {* z        {
0 K9 ]4 t0 W& N6 Y                .active_low = 0,
7 ?7 v' T( {, d& Q                .gpio = DA850_USER_LED3,  s8 Q  y& p$ f2 _8 v
                .name = "user_led3",; ]$ t& _4 h- j
                .default_trigger = "default-on",! D2 Y/ n0 @+ v: A" R5 Z
        },
; p. }2 {4 G' Y* Y9 C. D, n3 L};3 t  h- ~) a4 j$ X+ ]

% N' K7 w) a/ w! Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* F" S# e9 N3 D, z- \# {3 Q        .leds = da850_evm_tl_leds,( t' B- C: ]: k3 ~% c- L
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ _! w2 D! _: r  t0 F) q
};
- J$ z% B* J5 v. H
3 z& b) z- c' F5 {1 ?static void led_dev_release(struct device *dev)
! |% ]3 C2 D! H. \6 H& R; D6 a2 ~{6 D6 l) [  q8 @6 z7 x
};7 x& e! r( ^6 y: K
" \' t7 ^5 k4 J: Y
static struct platform_device da850_evm_tl_leds_device = {
8 T3 c0 ~! x# F5 g& P5 G. L/ A' D        .name                = "leds-gpio",( p; F; k  f' t* V5 s
        .id                = 1,1 z( n: g4 o- @' k* O3 r. ]8 J
        .dev = {, A$ x0 {7 [6 M! K% V
                .platform_data = &da850_evm_tl_leds_pdata,
. @( a6 E% c( k' s                .release = led_dev_release,
3 Z7 [6 }2 e: b: Q8 W% w1 H% b" L6 N        }8 J$ X0 ~5 u& j/ I
};, {, ~* n$ X( n" x  f. k* H

7 x; n6 }- H# v+ V# v4 [1 u5 ystatic int __init led_platform_init(void)! G5 v1 B# G0 z, c3 w
{+ a( W8 u6 D% m; y6 E# F2 \  e" H5 ~* }
        int ret;
4 G8 E2 P0 x* O1 l3 h' c: D#if 0
9 Y, B. [1 G" y5 F        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 ?1 @% i7 @# z/ {7 [0 C$ g) _        if (ret)
- |% U3 w2 Q  P; D9 [  h                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". r" }( g% r7 o
                                "%d\n", ret);% {+ I) w9 A" d4 o5 \9 U5 I7 J
#endif
! S. ^+ Z0 y8 N/ h5 \, V. L1 |; |        ret = platform_device_register(&da850_evm_tl_leds_device);
- [2 ]0 R/ s7 Z' E6 `8 ^        if (ret)
! c$ w9 j# C$ z: o- ]9 A# q                pr_warning("Could not register som GPIO expander LEDS");3 B/ e0 H. z: P0 c% |
        else
2 K" u2 e0 v) z: A7 Q9 Q" `& t" V                printk(KERN_INFO "LED register sucessful!\n");  |- G' b0 @+ Y5 B

* b- G, u/ K( F3 _4 [0 \3 V        return ret;
  P& l& T7 l7 |, s- V, k3 C}3 K: z0 g9 M0 Q
' t  r) E9 |9 V( U7 P+ t" Z
static void __exit led_platform_exit(void)
0 b8 J( \) }- U2 F$ |{' @7 D2 g; R- h* L, v6 s" w* w* y
        platform_device_unregister(&da850_evm_tl_leds_device);
3 N8 g, D! e% h6 _7 B3 F4 l2 P/ L3 ?* }1 a- T8 c
        printk(KERN_INFO "LED unregister!\n");
2 G! _0 l) C6 [; n}  U: m# V0 F6 N4 d; }" M

, ?7 g  s, s" H0 W9 g6 A( omodule_init(led_platform_init);
2 H9 N+ l" Z/ F3 Lmodule_exit(led_platform_exit);7 {% ~2 D: c: w

2 q9 X6 f, \0 aMODULE_DESCRIPTION("Led platform driver");  q6 s6 C! U3 T# a5 }
MODULE_AUTHOR("Tronlong");# w. ]1 `+ ?. Z1 u5 T
MODULE_LICENSE("GPL");
9 O' b6 |7 ]9 |, w/ _4 J- G3 h3 v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-18 04:57 , Processed in 0.041661 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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