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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* I" x6 u2 W, }- y0 O9 c#include <linux/init.h>9 E% X  I! W# a2 N0 Z: x, e+ l3 ]
#include <linux/module.h>
2 J, J" P( U% @0 U#include <linux/kernel.h>
, V  w/ w0 R. N! `- E0 [#include <linux/types.h>
$ B& Y3 N9 N: E7 a* I- R, x6 w" V#include <linux/gpio.h>6 O. h' n& O2 i0 `3 V1 Q3 `
#include <linux/leds.h>
5 e0 q% J/ ~# b#include <linux/platform_device.h>7 q4 B5 c* h! t' f2 ^7 h
' }% e5 U7 ]& `/ i3 _6 G
#include <asm/mach-types.h>/ ]/ W  S: ~# v
#include <asm/mach/arch.h>: k; H+ N) k1 U' X! t7 q
#include <mach/da8xx.h>' ?% B; S# p, d9 h
#include <mach/mux.h>  r  [. n6 m, `  V, Q0 d
- q& j) E6 }7 T# r3 k0 |. Y& }5 l6 ?
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" m# j1 u5 H  Z9 [* l: F#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 P! k# p3 }+ p& Y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 R1 ]5 |. h( v% O4 R
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  i  W) M* I' X8 E; R& i  y
( ]& h( X9 o- h, Z  y/ ]$ w7 x" e5 p
/* assign the tl som board LED-GPIOs*/
* h- g2 k, V9 M, x4 ~" Vstatic const short da850_evm_tl_user_led_pins[] = {
( Y3 K, ^; W, G& c7 O% F" M: ^/ @        /* These pins are definition at <mach/mux.h> file */
1 @! X* Z+ N' e7 q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! m* X: ], M5 }
        -1
) I1 n- T9 x8 Q};& q5 x7 |# Z  Y/ m1 X6 E
. ?0 y- w& r3 L3 E" @0 _
static struct gpio_led da850_evm_tl_leds[] = {
; H. [& J% v' |6 G; m        {' C, y* ]0 ^# Y" z
                .active_low = 0,
  B9 N# }- y! e0 J                .gpio = DA850_USER_LED0,
7 o8 J/ y+ a, ]8 x  G; i+ {& v' v                .name = "user_led0",
) |5 M$ G* W+ H* F                .default_trigger = "default-on",6 ]; r; T0 v" ?; H
        },
* |/ U; H  t2 m6 a# h& f        {
: w  x, t1 d( K' N* F" D! M                .active_low = 0,
! J0 x* ?. \' ^0 _                .gpio = DA850_USER_LED1,$ U+ x) y# m4 D$ P/ ~
                .name = "user_led1",
$ o8 ~" L# \8 ?! j: f, G                .default_trigger = "default-on",) @2 R4 @% x! t: a
        },; Q6 y8 {0 E" c  O( W  Y, g* e  j9 \
        {
7 f# D0 p8 |) D% h& x1 x                .active_low = 0,
/ b$ z. o( w( n6 L% p                .gpio = DA850_USER_LED2,
$ Z% L* m2 F3 i4 _                .name = "user_led2",0 o2 v; f: ?' \/ Y  Q0 b) ?  R
                .default_trigger = "default-on",- j. F, X2 a) {! O
        },4 U+ c1 Z. }. X: i  i, O- m
        {
# i) p% }6 {/ ^+ e                .active_low = 0,
$ s8 a9 w. ~* Y                .gpio = DA850_USER_LED3,' T1 G! J# X( V$ w& h' t* v
                .name = "user_led3",
, q1 U& L2 W& o' R. m9 c                .default_trigger = "default-on",) {" y% d4 Z/ @  z
        },
( ^( ^; b6 _( Q1 a. Y" q4 X& b& Q};
# ]2 }9 T6 u6 _/ n0 j9 Z
  {$ j  h8 v9 @- a1 R. x. r7 D9 Tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% B8 v* H- j5 r
        .leds = da850_evm_tl_leds,* B& i1 @! y6 @1 f% j
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 V4 }: X+ C( _& I};
+ \- b+ T, W& T% Z+ H
/ t3 z$ J9 c/ R; _+ [static void led_dev_release(struct device *dev)
3 E" _4 Q% ?  `{
$ s! Y: E' i0 `# D/ c, {8 `% i};
9 ^6 f' T2 V6 y) t( n  Z2 f0 A4 x8 T) @& c3 [0 d
static struct platform_device da850_evm_tl_leds_device = {  O6 X9 v6 p0 X; W8 z1 Y
        .name                = "leds-gpio",
3 }( v- J. N( A7 ?        .id                = 1,
2 x+ M8 L3 L4 B# A        .dev = {
) t* O$ W/ s, N. u7 H, r& w! F# b                .platform_data = &da850_evm_tl_leds_pdata,6 K: e; ~! J# ~" w8 K. H
                .release = led_dev_release,- o2 d6 O# W) U- `9 l4 h
        }
7 P: i( R0 Q& b# B0 U- d};
4 ?& c2 A0 G9 N# L8 C* l+ E0 F
6 U/ J! f$ n- w- Ystatic int __init led_platform_init(void): x  ?2 Y: o4 g* g3 g) ^
{3 W( J# d! V# b; T1 o
        int ret;
" F4 ^8 V, v* _" r#if 0+ g- e" T& |8 T  L$ X
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 l; d$ _! ?3 j8 G0 |        if (ret)" V& Z% n" z+ \5 d/ o. d- l: g+ \
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 |2 R* r5 l5 q  c* f                                "%d\n", ret);
' p* @6 t# v/ U0 q4 }+ O$ a#endif
3 [0 g7 i; k2 ^# l7 B& P- i6 m        ret = platform_device_register(&da850_evm_tl_leds_device);2 a, I0 A  D3 j; M5 g
        if (ret)0 j4 \. }- p" `1 t+ f$ `2 o+ P
                pr_warning("Could not register som GPIO expander LEDS");
" z/ R; p6 k4 P        else6 J4 o! M8 X' H7 S! _" f: w
                printk(KERN_INFO "LED register sucessful!\n");
/ |" P- C6 c. t1 ]$ p$ x( }. z& X/ c3 v9 b
        return ret;
* ^; g: m% b1 f, H& Y' Z}
: J  z2 {8 V' U
: I0 t8 z" S7 n5 p4 Estatic void __exit led_platform_exit(void)
  B$ r( ?1 r7 x( w! G( o{. S5 a# @' j+ n3 M" @' B7 }
        platform_device_unregister(&da850_evm_tl_leds_device);! ~( ?; l7 \/ |0 A+ N! N$ g
( ^7 ?0 x, E, m6 i
        printk(KERN_INFO "LED unregister!\n");
% ~& G6 n4 G$ U& m1 U}( b7 Z! _0 h0 f, ^

* A) Q4 t, }1 n) P' Mmodule_init(led_platform_init);
3 j$ u  n! H: j8 S# U5 Nmodule_exit(led_platform_exit);+ v3 V8 g+ T( Z2 H
7 @* c0 d4 S8 V2 N- M) Y
MODULE_DESCRIPTION("Led platform driver");; i6 I/ `' C- W
MODULE_AUTHOR("Tronlong");
* f$ W% h; C# i$ QMODULE_LICENSE("GPL");
5 @0 Z9 E# M: I9 g% Q) L% W5 X, k8 Y! \9 b; Z  e2 g/ e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-3 12:49 , Processed in 0.038977 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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