程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ j' F1 h+ d! Y
#include <linux/init.h># [; q) r$ l9 w8 c0 Q
#include <linux/module.h># F% u7 s. B6 h% [
#include <linux/kernel.h>7 h, v# _3 h; B6 |
#include <linux/types.h>
) i5 x$ T9 k+ n3 k#include <linux/gpio.h>
: Y  ], w5 B$ [; ^' F#include <linux/leds.h>
8 y, d8 r1 r9 G3 C; [2 a. [#include <linux/platform_device.h>/ S! X, m- H7 `- j
% K4 N* l$ D! E7 I: Y) L: ?
#include <asm/mach-types.h>
. K6 L, C; G. X. s$ H' F#include <asm/mach/arch.h>
) s0 r' A6 Z& [3 j7 r% a#include <mach/da8xx.h>  C  N, B9 }5 n# \
#include <mach/mux.h>
! A) D' @- R" K3 M( n
) `# d' Z' r, p& P#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 J8 R3 ]5 e# m' Z+ p( e3 V; S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 n- l/ {4 U$ t$ }
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 \0 K  ^! ^, f' o3 _9 z  X, B#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. B7 U! v: _2 b( z! d
, d; d# p6 U* x/ M( f% _/* assign the tl som board LED-GPIOs*/
: _9 O- E( y& e5 e2 O3 hstatic const short da850_evm_tl_user_led_pins[] = {
# `% u4 D( x7 e3 p        /* These pins are definition at <mach/mux.h> file */
" ^( V+ W- [- P# R7 `        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 ~& |$ h: s, n3 F) j        -1
, R2 x+ _8 e3 {6 T5 U$ W};
5 Y- \( q6 v" M) ^
8 X# l, v6 i0 g: p$ Qstatic struct gpio_led da850_evm_tl_leds[] = {# M7 I' F( `  @+ e
        {
; W7 F# \  f% c: v+ }                .active_low = 0,
) m1 e% i4 C# C8 Q                .gpio = DA850_USER_LED0,5 f# o. ^8 a' N% x! W: N
                .name = "user_led0",
6 R$ a3 b0 m" n4 w                .default_trigger = "default-on",6 k+ `% i2 ^0 m1 R" P& Q: I# K
        },
: C0 X! n! o+ \' f3 @* |& L; v9 g        {% F, J6 `2 Z- ?
                .active_low = 0,
; h7 ], J7 p. b$ y! M                .gpio = DA850_USER_LED1,
7 w. p# n2 B- F. `! I6 r/ j- M                .name = "user_led1",$ v4 p& W9 ]9 h/ ~. X
                .default_trigger = "default-on",. i: `% k! Q6 B& V' E
        },7 n5 d6 t) H) O  E" p* Z7 u, j/ _- ^
        {
! A+ E/ L0 }- W4 b9 N                .active_low = 0,
* b0 c! ^3 |, p5 _* r1 }                .gpio = DA850_USER_LED2,
( i8 v4 B$ h9 C- s% i  N& U                .name = "user_led2",* u8 q- Q% x2 |/ p+ i, a
                .default_trigger = "default-on",* Z: l! D. f9 I2 a2 }: @
        },
* ^* i9 ~8 G3 _2 e" ~        {8 L; a2 J7 v9 }! h7 \( \7 g! M8 j* N) }
                .active_low = 0,
& S3 b$ L( |$ @2 `9 k                .gpio = DA850_USER_LED3,' T: ]4 Z1 D8 C8 y) t- g- m! l
                .name = "user_led3",
! B3 \; b/ `% w8 K: R. b2 o                .default_trigger = "default-on",7 |6 h3 c6 P- F- v6 E. {0 i3 s
        },( ]2 r/ j1 s, U0 ?6 J2 |
};
+ E5 @! T% I: _$ |. O2 m0 e6 I$ \
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# m1 z2 H) R# Q
        .leds = da850_evm_tl_leds,
, A8 U7 K9 j& M* |, W& s        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 A) K' h# }6 M- z
};3 X2 e8 D, R$ E( n7 Q
6 A0 M) g% c+ c  b9 m
static void led_dev_release(struct device *dev)6 [# B0 s% M- }+ I( u5 L
{: k( [8 M: j5 t8 [( m
};
1 ]- J6 \3 y5 [; e# D) I) o: |  c$ X! H2 F; {2 n
static struct platform_device da850_evm_tl_leds_device = {
. m/ C+ |9 v; X8 s* D        .name                = "leds-gpio",
+ M0 p- L3 |  X        .id                = 1,1 a# T6 Q) m; d) S0 B. E7 o1 a
        .dev = {: ]! D/ p: I! K
                .platform_data = &da850_evm_tl_leds_pdata,
; D, ]! z: S2 G5 u! h$ ]; \+ T                .release = led_dev_release,
8 \, {, F1 J3 \8 n! L        }
' F0 i; l3 n5 q7 h; N0 M};
% q3 I/ i8 V" L' W! [* l# ^* Y, l8 g/ G, F' B. {
static int __init led_platform_init(void); O8 J/ p) M% g& R3 O
{1 d/ R# |8 s+ W2 p( w
        int ret;
& n# g, s( Y3 [0 V1 e. S2 Q2 d#if 0  q* Z) g0 B* w
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: k3 [+ G$ g& q  X        if (ret)% H4 M6 C$ J4 |1 F! s2 I
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' o' h) D! r  x. m- c0 Q
                                "%d\n", ret);
. l- F! E" c' ^+ @7 q#endif9 o% r! P% A9 ^' g/ W. \/ R
        ret = platform_device_register(&da850_evm_tl_leds_device);$ y. ]0 L; L; h  {! K
        if (ret)
( V: |* b8 q+ N+ q, {' {: k                pr_warning("Could not register som GPIO expander LEDS");
+ U# `) w! i. u- U        else$ F: q. U3 R1 v, W
                printk(KERN_INFO "LED register sucessful!\n");5 G7 P. H2 Q2 x4 W6 L/ e7 D+ R, |

) C; `8 ?0 k" D8 L" ?! z        return ret;9 P7 A* \/ A  [
}* [4 Y( `: P6 i, b& {

- N) U' c. C+ q: D# Nstatic void __exit led_platform_exit(void); r! |- u( R% t, \
{
. @. y/ ^; |7 V$ R( e$ S# `; ?        platform_device_unregister(&da850_evm_tl_leds_device);- n7 |& C1 `6 Y: w7 }

" `% a! Q8 b$ N) Y6 \% p0 W* \        printk(KERN_INFO "LED unregister!\n");0 s' U7 ^  I2 r6 |
}
% q/ }3 e/ u9 Z' z. Z5 k' b9 ]$ L4 L! Z3 g1 _
module_init(led_platform_init);! k8 l2 r4 {: Y: ?( a' x; l9 N: K
module_exit(led_platform_exit);8 z5 B( k0 o  f: T
" g% P( u& ^2 H- L
MODULE_DESCRIPTION("Led platform driver");
8 U! @  M3 [  {( V+ o1 }2 w2 ?1 sMODULE_AUTHOR("Tronlong");6 C# u" X$ R  Y+ X% W- [5 k
MODULE_LICENSE("GPL");! m6 u+ _: W$ [* t: F! I& [
  ~/ g: s( F" W" |( ]7 O* Y2 l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-22 20:34 , Processed in 0.037791 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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