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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; S9 g6 Y% e, z9 @
#include <linux/init.h>3 X- ~1 c: _" i4 H( S& O7 h  Q
#include <linux/module.h>! U7 w0 ^1 O# i5 \$ ]. E
#include <linux/kernel.h>
# P/ j, J5 P) K! ~4 l#include <linux/types.h>
- |. T' \6 L; S/ D5 B" t# E! ]#include <linux/gpio.h>" {) {4 M+ j% b( F$ |* T, t
#include <linux/leds.h>
* u5 e1 V$ O; \) u#include <linux/platform_device.h>
/ ~# p, y0 S- A7 }4 L" Q
$ i! u0 G, F- O& q7 U9 l7 c# a! G#include <asm/mach-types.h>! @7 V& w6 Q- ]2 s: |2 v* }" D
#include <asm/mach/arch.h>  R- l% p) z  ~* d4 T
#include <mach/da8xx.h>
1 R- [4 N  M0 Z5 X) a#include <mach/mux.h>0 D$ ^# |( E" n3 e# r0 w4 e

' P* @* }( S+ L% f: ^, t# X#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' |! G9 U" }6 y, v  t
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 T. E/ O/ T& k1 h$ c- w
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 \2 c/ h, u; r7 s
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 V" M1 T8 s# k- g4 L

2 U4 X7 o% y& ^& N, Q# a; @* A- C/* assign the tl som board LED-GPIOs*/. @; v: @# {% W0 C
static const short da850_evm_tl_user_led_pins[] = {" p! c4 j3 ]# ~; d7 T7 X2 `
        /* These pins are definition at <mach/mux.h> file */
: m9 r! p3 c1 z! @9 K        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 B5 R. u8 e; l: g! P        -1
' Q: L1 q& v2 \& `% D};% M  V/ V9 h: x! j2 o' v

; T1 N+ \+ m8 {2 S8 estatic struct gpio_led da850_evm_tl_leds[] = {% T* s% Q! F1 l+ y
        {% Z' v, L6 w3 E2 l- X3 e: N
                .active_low = 0,/ ^& [6 `9 W% B
                .gpio = DA850_USER_LED0,3 Z" \! \) Z5 W
                .name = "user_led0",: z. `! `$ O' {- `/ X  j
                .default_trigger = "default-on",9 k5 P$ @2 o! ~. o
        },
2 G! M( c6 w3 y2 J3 |+ t        {
3 \- n$ |+ N- N; s3 x5 y                .active_low = 0,
! B$ T) n0 W8 x) [3 ]: ]  \                .gpio = DA850_USER_LED1,
# M8 T" S" t' p9 [6 y( g                .name = "user_led1",( ^' w" T) U3 `2 H* Y; U) X; @) n. i4 q
                .default_trigger = "default-on",  v) h, O: E+ ^  r& Q: o
        },
0 i& B9 S& C' o& l3 K( s        {! E/ y% @; ]2 }; S: M
                .active_low = 0,# i4 r" G/ ^% l$ p8 C  j5 \
                .gpio = DA850_USER_LED2,
  X) d  d0 t5 b                .name = "user_led2",
4 v3 n1 n7 P8 |' e1 {                .default_trigger = "default-on",- g9 R8 v- Y, {! F$ S! h0 f& n
        },
. i$ x/ |7 s( |! Q9 L        {& a: _' R# r; h; k
                .active_low = 0,
5 P$ W- v3 d5 s; M3 B+ p$ G                .gpio = DA850_USER_LED3,
- F6 V1 @, m, F0 I                .name = "user_led3",
! y% C! |) G- }1 g4 L) j3 X                .default_trigger = "default-on",
! W; Q9 r6 G5 C+ B# C* E        },6 |+ W* A$ t) ~, Z; I" p$ ?  `: n
};: K8 b$ O: t$ L# r9 D2 `# X& H, n
5 j! Y/ S: z/ s$ a  |; T
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 d: o; [( _4 E
        .leds = da850_evm_tl_leds,4 G( o/ F% Q* K
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 Q" a1 v$ q4 N
};
" y* f# b$ w2 i7 n2 M, Q- Y+ G) X# @" ?4 Z" k+ _
static void led_dev_release(struct device *dev)
  S: M7 a9 ]* d) B* V{! g+ [  ?. @7 B) f  q
};
) A+ c' g6 F' _7 L! G8 Y; l. B, }8 c; @" F8 G* F$ x+ x. b. `
static struct platform_device da850_evm_tl_leds_device = {" t" e' D; }- X8 F" F) r
        .name                = "leds-gpio",; O8 k* m* V5 M' X) k$ S
        .id                = 1,
" N* p6 x0 f7 [& s, V        .dev = {
+ E/ Z( m7 D. H2 C                .platform_data = &da850_evm_tl_leds_pdata,/ K' ~9 ]# a1 ?9 B* V
                .release = led_dev_release,+ S" t+ Y4 R) _
        }
2 p! J7 g7 X0 G  I* Z+ }2 ?4 i, a* o};
, k0 E. f9 u, e+ x
6 m: x0 \2 l( u4 Istatic int __init led_platform_init(void)
) s! `7 D" r! M5 E  z% g8 h{
4 p( y; {, {3 L5 E7 j7 u& u        int ret;
2 S1 D2 k9 H+ o6 O6 h/ l: l' z1 H#if 0
3 ^0 |! Y2 G' W" B  T        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 {/ n- H* Y2 Q, K$ o$ O% B  [        if (ret)
6 P, t4 i- K( I. N% P                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 {2 e& P# o1 [: v
                                "%d\n", ret);  s1 {) C0 R$ c$ B" d- t3 E  l9 q
#endif
( z+ h" b3 m9 G( a) I! j        ret = platform_device_register(&da850_evm_tl_leds_device);
+ I& k) l2 x; Y* l& Y4 M4 N0 u$ g2 x        if (ret)
: a+ M6 t- ~8 F/ U' O5 s                pr_warning("Could not register som GPIO expander LEDS");- u5 J7 m/ T" X7 A- N
        else
: s: M: J( Z: V! d                printk(KERN_INFO "LED register sucessful!\n");
( d2 Z1 ]+ L' e1 f' v# Y( e; C$ {. L* `9 A6 m1 n6 G3 y, b
        return ret;
$ C; j% m" W+ c5 t' S) k}0 t6 v+ w6 j; k, V7 ~1 C

& M; l# p& _- q& u0 Y( A1 C, ^static void __exit led_platform_exit(void)
* R4 {3 u6 g0 T. P{
- C4 t3 N! e* W) c        platform_device_unregister(&da850_evm_tl_leds_device);. u# ~- R( i& X; I# t
- l' R, W: ~& V
        printk(KERN_INFO "LED unregister!\n");3 N8 Q6 n* E8 E- t
}# I4 l  {" s2 p
+ @# P! _# X  b/ o- Q6 |6 l
module_init(led_platform_init);1 A; t* B* \; p% v: O9 P
module_exit(led_platform_exit);
$ N' b/ u5 y" G2 m
) _. Y6 S) V/ X- ~3 @* A7 W  f4 xMODULE_DESCRIPTION("Led platform driver");, M/ k9 M6 Z: c7 s) j. E8 o# q
MODULE_AUTHOR("Tronlong");
# Y4 \, P% q6 CMODULE_LICENSE("GPL");
- d+ H2 \  L1 A2 T( Y
0 }1 O- M2 T" v5 f* g& o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-8 17:31 , Processed in 0.039238 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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