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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( J! v$ F, y7 R
#include <linux/init.h>; o+ R& [8 i5 |6 H: v
#include <linux/module.h>
9 n. L  L- {) N9 v#include <linux/kernel.h>' y% F) _" R" ]
#include <linux/types.h>
5 \+ z* Y/ Q, y  C/ w#include <linux/gpio.h>
3 u* x3 L5 {0 H# V4 V1 s1 `& N#include <linux/leds.h>. E  K, g3 C5 z9 J
#include <linux/platform_device.h>2 P! X) b3 O% V1 q6 m

/ H- w& S# |; K+ [6 z3 K8 p#include <asm/mach-types.h>
2 F2 {7 c8 _2 H! k3 }' [4 O#include <asm/mach/arch.h>! L0 b) E! s; K/ G* O
#include <mach/da8xx.h>
7 d1 U: a9 Z: }/ Z#include <mach/mux.h>
; }/ o5 G) F, H7 }8 P- ]* o/ O
; k! }; l: _' m$ U/ K8 B3 c#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' \' x6 i( N: ^2 f1 v6 a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, f, ~- L+ K) [! O#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& W- k" N: f" B. A9 ]( H+ I#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ a% a: o' i8 Z" P# h& f7 ^1 c& ]$ k# |# _) t+ P7 T
/* assign the tl som board LED-GPIOs*/! a) c8 D! H6 t$ p$ T' T9 U
static const short da850_evm_tl_user_led_pins[] = {+ I. W4 j  I" r& L$ x
        /* These pins are definition at <mach/mux.h> file */
1 \" y! Y8 ~6 {9 W- S. V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 A: [3 n& O- `$ p
        -1
1 M) B: Z( |+ w! Z};
$ H- j% ^' A; g1 u8 Y# k$ y9 o; M2 J1 ]. ~) w( a
static struct gpio_led da850_evm_tl_leds[] = {8 P  x3 _3 X$ z8 A; c* J7 t
        {
; A3 r; S. A$ l                .active_low = 0,: }0 {4 e: j8 a' p. E0 ~) H
                .gpio = DA850_USER_LED0,- J  T% [2 }; D) t1 Y" l
                .name = "user_led0",
6 o0 l5 b3 j! m% s# g' I, Z; q                .default_trigger = "default-on",
4 h9 q, i4 b; z' K6 f$ ^        },- ~, v; z" q2 R4 O
        {4 V0 C1 Z( U; p0 N0 _; z
                .active_low = 0,
" Z) n  ^9 F; V4 k/ q8 q. m, U$ J6 I6 F8 d                .gpio = DA850_USER_LED1,
% W" U. A# d$ R                .name = "user_led1",) [" U! Q: p4 n1 c$ L5 P4 C
                .default_trigger = "default-on",7 y/ Y6 g8 S0 r9 W: v4 `2 h
        },* h* ]% r, l* X* G
        {0 w+ S( s! T* Q
                .active_low = 0,2 P1 z. f$ }: T6 m
                .gpio = DA850_USER_LED2,
, O: [6 \$ E$ C4 |; L$ p  P                .name = "user_led2",4 k' L. ]& J5 j, D$ K2 g
                .default_trigger = "default-on",& P  H9 A" u1 Z# s) s
        },
, G3 F1 ^: _+ w        {
3 y* `! Y& H3 N1 d8 B  g) a                .active_low = 0,
$ b: z! @; m; c* W! K                .gpio = DA850_USER_LED3,
, J4 R* O% u( E8 W- }/ r3 G5 W                .name = "user_led3",9 o; G& v- y% q
                .default_trigger = "default-on",
" `$ v" |0 o" K, m% G+ M0 \        },
: |( W0 @9 V2 m2 S- M};
; e6 D# Y) w8 M2 J. t7 i# v6 R/ c" m9 C& J' q" L& a, I5 E
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" r* Y2 ?# f! H
        .leds = da850_evm_tl_leds,; N$ l3 p3 u3 Y' _! q2 z# l: I# b
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: q& Y" b* j  H" ]+ Q
};
0 \. ^; t( G1 k0 \0 U9 u/ Z+ @5 j( P$ o. W6 l
static void led_dev_release(struct device *dev)
7 @7 F- |$ `' w! b5 T% I4 I{* V( r! w; t/ t0 E
};
9 ]5 q+ O; E: x) W
8 O( E1 [) q  P7 Z1 `static struct platform_device da850_evm_tl_leds_device = {4 `1 z; }( z, m9 m' o  v4 n5 @( z
        .name                = "leds-gpio",
: u% M/ V& y: d, K1 u: o        .id                = 1,
& N5 C/ z% U5 b- r        .dev = {: h/ f3 c7 v- g) M) k+ g
                .platform_data = &da850_evm_tl_leds_pdata,
1 C# i0 t4 f6 B, L: l                .release = led_dev_release,, ]9 h" d7 ~7 y0 G; D9 u! l3 p
        }* n  N. ^: |. A) A) `/ H
};, X! v' T, t* c& [1 G& I$ _. y
$ r" v& |& g# h, J
static int __init led_platform_init(void)0 ^6 n3 O5 D+ e* z& j2 A. t$ M$ `
{
* d+ C% o+ Q+ I( E9 Q8 U        int ret;
( s3 D( f% p; w1 `" s/ Y#if 0
+ X# k# |) V& A        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  W7 }3 ]3 V( C$ L0 s9 H* S- j        if (ret)3 I5 M0 M/ `( m1 `, @) K
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 m* c1 W: m! A0 L                                "%d\n", ret);: L/ ]. W/ k3 i9 U  ~1 ?
#endif+ ?- ^6 W: B. N( R* }
        ret = platform_device_register(&da850_evm_tl_leds_device);
8 t  P# w* J4 L        if (ret)) Y! a# L5 y7 w+ r/ H
                pr_warning("Could not register som GPIO expander LEDS");
+ }/ m; m- N2 L1 Y! w2 i  r( W        else' E" o: m& V7 L6 D/ \  b, Q
                printk(KERN_INFO "LED register sucessful!\n");) S. A5 V) l, d8 F6 E
( q0 |2 Y: W/ P" r1 |
        return ret;
$ p) b( L% k7 a: J3 y# o}* m( W  k7 ~* K" {+ f; f& R4 W

' T1 [' {/ l1 ?$ e" q3 V! Sstatic void __exit led_platform_exit(void)
: [! w3 I/ |* v" {{* _) Y6 n+ S/ L3 c
        platform_device_unregister(&da850_evm_tl_leds_device);; e3 l$ q! G1 L1 o& T8 p) A( S

6 \7 k5 Y6 C; U! b        printk(KERN_INFO "LED unregister!\n");
  s4 @6 _# I( J8 n1 ?' X8 I4 }1 T1 X}
' N& W" R% l: [; r9 q
1 b" q" U  t. J8 S4 U% D( vmodule_init(led_platform_init);
7 W& ^* |0 u( \4 v5 V0 Omodule_exit(led_platform_exit);% m: L- c; f1 Z
4 Z7 w1 l4 k. N% r. K( q
MODULE_DESCRIPTION("Led platform driver");! Y1 d" L6 Q' v
MODULE_AUTHOR("Tronlong");4 y  [( U) }/ n4 l
MODULE_LICENSE("GPL");
& ~' @1 w+ l/ V; O
9 [: A) l# N4 r  R) f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-23 01:20 , Processed in 0.039931 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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