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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& a9 G' h. g. m; _#include <linux/init.h>
- n6 d- x% D& m, J#include <linux/module.h>* Z: \! k1 f2 l# `4 w# A
#include <linux/kernel.h>
6 l& X/ x$ r/ `0 [/ D: a#include <linux/types.h>- i3 E# [/ P& X6 s5 G
#include <linux/gpio.h>
" T' b+ d! `: k9 |$ [  ]8 y$ r! h% ^#include <linux/leds.h>
  m' |5 w5 `1 i- J) o! F9 |#include <linux/platform_device.h>7 p* L7 ~: x; V% O2 B1 @. u

4 f9 C9 Z# s# d% m- T#include <asm/mach-types.h>
6 j9 C( }4 K6 X#include <asm/mach/arch.h>
9 u4 u& H4 W# {% F  G, w3 L5 X#include <mach/da8xx.h>* t/ n5 {5 q$ C9 x# G/ y$ ^0 R
#include <mach/mux.h>
0 L2 {+ c6 F5 a8 f
- i; m, S4 d( F7 q5 Z1 O#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 N- j2 F- ^9 r& z) G7 M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( }8 H( W2 ]9 C
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, i+ P6 D/ m+ W' I! X6 K. n; A#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 K7 k$ F9 J) w0 Q  s6 {' ?: R4 z1 t1 W+ {
/* assign the tl som board LED-GPIOs*/
- o! U& O( _6 Ostatic const short da850_evm_tl_user_led_pins[] = {3 V$ ?, |/ P1 F3 E2 o0 y9 M* V
        /* These pins are definition at <mach/mux.h> file */; u8 T% f5 B# }) w9 i; M' k
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 g0 {. Z4 S# X, F( H
        -1
. I9 P! [5 o+ T8 {" `};% Y" S& g, Y' \. m

3 I# \+ k/ M) O' i4 Ystatic struct gpio_led da850_evm_tl_leds[] = {/ a# ~% [/ V" t
        {
' T! k7 o1 }  K5 i4 w& v                .active_low = 0,
9 C4 P. q3 S( ^  {+ Z                .gpio = DA850_USER_LED0,( e2 n; ]6 F- Z
                .name = "user_led0",
6 |- _- b1 d% P                .default_trigger = "default-on",1 T, N. S, u6 b! o4 \. a+ L
        },
; E+ c9 x9 g/ g2 P        {
& q) I0 i9 F' k  `: h! v5 l                .active_low = 0,( y, W  l- ]8 Q0 n
                .gpio = DA850_USER_LED1,
* u; g& Y! i  i/ w! K                .name = "user_led1",6 p$ a8 S5 G  }4 q' L/ H! U
                .default_trigger = "default-on",
0 R/ U' E, ?7 F        },! ?: |' L$ t& r
        {
' R. }+ Y3 r$ `& K7 j                .active_low = 0,5 x, ]1 T$ F) U
                .gpio = DA850_USER_LED2,
/ D4 h5 Z; p3 J                .name = "user_led2",
0 V& Z) f" t' y6 r6 X                .default_trigger = "default-on",
3 L' R' u0 M+ Z. e, \' X        },
2 C! J7 r1 i4 B0 Q! X  f& Y        {. N' O( k! J9 x* e! N; a& V
                .active_low = 0,
* [; O: k! |9 j. i% X/ {  U                .gpio = DA850_USER_LED3,6 b, ^; T8 |4 i4 B& M" o
                .name = "user_led3",  k% g, v+ ?* Q* n6 e/ p* b; u
                .default_trigger = "default-on",
) W. {- o# h$ {# L; k! ^        },' z: d- i5 O4 v) _" @
};
( ]$ J( L! |5 n0 h5 W$ k. D& c
. r; J  l" Q5 P. ~) d+ v- ?static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. v. W; A, O9 B: P3 ~        .leds = da850_evm_tl_leds,0 J% Z. ~1 n: N+ g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, u$ t. C3 Q2 H) T# z' W* Q# c
};
' I  H& O4 V& \, B. Y
' s; J7 l8 t8 x# O9 g8 A  istatic void led_dev_release(struct device *dev)- l/ G7 Q6 `4 \. t& x. V7 W; a1 g
{
+ r0 ]$ ~7 n2 W5 @9 |};1 \- [. Q" T+ v/ ?2 g( I
, r& |- V, U# q7 J( j  c
static struct platform_device da850_evm_tl_leds_device = {
1 t' `+ R( g3 _. Z+ _        .name                = "leds-gpio",% w0 r; [( b. `3 `3 \6 U
        .id                = 1,
: I) n4 ^) t1 e3 U        .dev = {! ?6 A" A- s  u$ e+ w# }% ~
                .platform_data = &da850_evm_tl_leds_pdata,* {9 k  ]9 s0 v4 j
                .release = led_dev_release,. H. {7 e4 _; k% [
        }
2 F+ ?" v3 l- ~# H0 h  u};
  y: o7 l# t  A- E7 j/ Z
5 f9 N% F% h* Xstatic int __init led_platform_init(void)
* u3 B8 K* q% F* f3 U5 v{
1 L( M  E4 Q0 K3 T  T2 H# r        int ret;$ z! f9 X3 s' H
#if 0. p- T6 {- G% t+ r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 G% l* |8 _- i- B5 c
        if (ret)
5 |) `( J! V" ], J2 S* j                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  m4 W, Q# i5 b4 y$ t) C, U1 T/ M
                                "%d\n", ret);* n6 B$ \* ^& d6 }' R
#endif) L+ t: r, P' Z! L* s. F/ Z$ R) r
        ret = platform_device_register(&da850_evm_tl_leds_device);- j6 X6 ~% Q# o. D0 w  Y
        if (ret)
9 P9 M- w5 K( J# B! g4 w5 u* {                pr_warning("Could not register som GPIO expander LEDS");3 Q' [' X, m; P
        else6 Y- g. U( V, U5 m2 L2 ~% v- _
                printk(KERN_INFO "LED register sucessful!\n");
$ f0 N6 G  C0 a" C, \5 R; y7 U- |3 ]7 O: p+ {' \, ~
        return ret;
8 `7 i6 D1 h" y) w$ `}" c0 N: _/ P6 G  e4 B: k. c
3 l$ h4 B6 N- u* \* B
static void __exit led_platform_exit(void)
1 w; T7 e8 `3 U) d* n{2 b5 F2 U$ q$ \8 ~) h( C
        platform_device_unregister(&da850_evm_tl_leds_device);- Q# g" n9 v: C9 u
. E* W) Y6 X) Z. C: o  ]
        printk(KERN_INFO "LED unregister!\n");
# R( N8 Y8 C$ H0 l% C1 x! z}" `7 o9 n: i2 z9 O8 u8 q
3 S$ s3 D+ t) Z% @6 `) Y
module_init(led_platform_init);
; ?2 R# t. j$ V; T( X0 fmodule_exit(led_platform_exit);, B/ e8 f7 d4 p7 g3 A7 D
! t* O8 ~* d- a( s- M) x; p
MODULE_DESCRIPTION("Led platform driver");
! n# R- N- y1 p9 |, ?: ~, A3 C( {1 Y- dMODULE_AUTHOR("Tronlong");
2 V) C. S, d3 i/ T# oMODULE_LICENSE("GPL");
& f* O& \+ L- v# W& x( ~0 s7 d- b5 v6 G" B
& J) Z' T: s0 s' X9 C' G8 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-9 16:41 , Processed in 0.038598 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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