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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 y7 l! F, u$ c3 z: \9 X
#include <linux/init.h>- f! f: K1 T) p# ?
#include <linux/module.h>8 u' U! ^5 ]7 k% T
#include <linux/kernel.h>
. E9 X/ G9 E9 F( S' ?: s- Q#include <linux/types.h>
- I* \: z$ W& Z& M7 \#include <linux/gpio.h>& Y& B" h; [9 P6 N' S3 B
#include <linux/leds.h>3 c" J* P" _9 H$ T7 z5 z* e
#include <linux/platform_device.h>  t* l8 J& P4 U2 q: z

5 I# @7 P2 \) r7 y7 i/ A" z* x" V#include <asm/mach-types.h>
& }9 U3 W! f$ t3 ^; o#include <asm/mach/arch.h>0 {7 Z3 T& \( K" [
#include <mach/da8xx.h>
0 W" D1 i* ~% t8 `0 }1 y& r. O6 K#include <mach/mux.h>0 k' W8 l! M  b! [

# g% j) g' N: Z8 C7 F+ P& \% X7 Q( M#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 D! {1 f/ C1 ~6 Q' W1 {
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, E8 k: r! Y0 u3 Y1 O! E6 I4 d#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' l) A! u. J( L0 O5 e#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ T$ @( f/ d: L

8 k$ G6 {8 I& [5 a. D/* assign the tl som board LED-GPIOs*/0 L7 i- J  l. r! R
static const short da850_evm_tl_user_led_pins[] = {
6 f! K* ~& z% y" H( I* }        /* These pins are definition at <mach/mux.h> file */
* ]' }: E0 K5 K7 D& w9 {  Q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 N9 S/ e5 f1 ?& {# |# S* F6 S" ?        -1) I5 y# v) t& H) S9 h; n5 t
};# G$ B: [! Q$ f

6 Y1 @( ]% X6 k' o% ~static struct gpio_led da850_evm_tl_leds[] = {! b. X- y( {0 u( V+ F9 j9 s
        {3 t9 s5 X5 v$ y) H$ F
                .active_low = 0,8 }6 T% K( {9 C7 j7 a$ w+ M, d
                .gpio = DA850_USER_LED0,0 q! w- v; h2 ]$ \% i: P5 q
                .name = "user_led0",! Y4 T2 T( p" K! k# `- ?1 v
                .default_trigger = "default-on",
5 M( I' s$ |' L# T# h+ {        },
' [9 Z0 k% j5 I9 k& D+ t2 G9 y- f        {
9 s# x8 j& ~3 r4 B3 D( p( H                .active_low = 0,
7 I+ w7 e3 H3 r) j* S  T                .gpio = DA850_USER_LED1,9 H2 ]* X/ c, J: G" v8 m7 {
                .name = "user_led1",
+ u; }$ ~$ Y5 Y! c                .default_trigger = "default-on",
' v5 P8 x/ H1 a6 H1 T# D        },
* W8 h( R9 z! w) ]* b/ Q. ^        {8 ^; [) s# A' v  Z- v
                .active_low = 0,7 q3 x4 {' X+ P5 L1 w, B; @5 c! t: I
                .gpio = DA850_USER_LED2,
8 U0 A- y# a3 k- t7 u                .name = "user_led2",$ _7 }' p2 I0 t& S3 e
                .default_trigger = "default-on",
) K" C& F6 b; ^0 u! X% K9 d        },
" t+ ?7 j* `2 C& L) W        {
) |& ^  ~6 ]2 D                .active_low = 0,
. G7 x5 a# ^5 v$ Z5 H                .gpio = DA850_USER_LED3,7 M5 z8 g4 h/ g
                .name = "user_led3",
' b9 K% y2 M5 F1 T1 a                .default_trigger = "default-on",
7 J3 w7 p$ |9 q* q# C7 ~. j        },
+ e7 _  Q, H' y$ D: G6 I! b};" Y1 F4 H& c9 z, w

' K; _9 n2 b9 B+ i4 ?static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 {: E# o/ s$ w4 }+ U$ w        .leds = da850_evm_tl_leds,8 G% k4 E$ |* R4 W0 ?" e, G* ?; i
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 j: X: f, O# [. d; S
};6 w$ h, {+ B; N$ t" f9 Q# k# X

5 Q* _, ~: ]; g# J7 ?6 O% U" }static void led_dev_release(struct device *dev)
7 L% |/ m6 V9 _9 u{1 k( B  i5 R! m& y
};
% u2 k- T4 x! k; X/ B( U; `% H, z4 H. k1 I
static struct platform_device da850_evm_tl_leds_device = {7 u& j( T( O/ I3 Y% h7 L4 x
        .name                = "leds-gpio",
5 m, U4 [4 f7 B" c9 j8 o; U        .id                = 1,
8 V* V6 L. j( l8 [  Q+ R        .dev = {6 E$ c- F3 e, T; ?; w# _1 l
                .platform_data = &da850_evm_tl_leds_pdata,5 W( ?5 C9 r7 d/ H0 w3 N# D- @2 u
                .release = led_dev_release,0 m3 E- u0 A2 h& M" U7 {& a
        }) w9 R! ^0 r" y
};
* ~! H7 ^  U) o% m
7 G. L' p0 t) s/ `/ ^static int __init led_platform_init(void)
" z7 Z9 ?+ q! w2 \! q7 }0 H{5 r$ B# u# g+ M+ n
        int ret;; Q& @+ t- L/ c& o  e
#if 0
8 Q' Z7 R) U$ n! K        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' ]* }3 G: t- K( ?* y
        if (ret)& L# I+ ^5 i; B4 ~. B+ n1 r4 y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) C6 |1 L/ K4 W# G, I& p                                "%d\n", ret);
1 ]2 ]5 z; M" Q! M$ o* x#endif, l" ?3 X  }1 N+ s
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 a, Q& d+ G, G. l4 U        if (ret)3 g, L7 C1 V2 h
                pr_warning("Could not register som GPIO expander LEDS");1 }, A% _3 Z6 X2 e
        else
: C$ i, R+ x. g3 b9 a" E4 d                printk(KERN_INFO "LED register sucessful!\n");
( I+ |5 m& }3 e0 y/ M3 i' Z7 H" f& o6 h) x5 {+ @
        return ret;- u3 v( |3 Q+ x4 [2 V; n: N
}
  F1 z( g3 e5 w! U+ O6 `. l$ [( p7 x1 y0 l! ?2 q; h
static void __exit led_platform_exit(void). y& f* u5 x% V9 ^# k! }
{
; d2 m) T/ j+ _2 _3 |. q& R        platform_device_unregister(&da850_evm_tl_leds_device);# t) r+ x" Q0 X9 q, H( V
  E  L0 p) Z0 f; C
        printk(KERN_INFO "LED unregister!\n");
7 O# {2 W+ V" n6 _6 m. t  C}2 m4 n. R4 F2 ?( I' \
3 z( g% n7 y6 Q6 q  W( z9 Z( L
module_init(led_platform_init);* i% N" j  U9 q% b: Y) Z- j5 n$ S
module_exit(led_platform_exit);
) X; q* m$ X- R; Q: H: l! o
3 o- n& o% n/ d  i# aMODULE_DESCRIPTION("Led platform driver");1 ~2 w) `. b6 X
MODULE_AUTHOR("Tronlong");
2 W' B! z  D' A3 J" [$ GMODULE_LICENSE("GPL");- S3 u  Y% J  z: Z2 Q  m

) v4 f% ]: u5 p0 @" O) u+ z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-16 09:37 , Processed in 0.046200 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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