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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 f( r9 }; L0 E$ P' P- u
#include <linux/init.h>% u2 ?3 [: U4 _4 X
#include <linux/module.h>0 e# I( Y# l# ]8 L2 l3 N5 I1 m
#include <linux/kernel.h>
4 |: R* t4 S) T0 `* z#include <linux/types.h>  N# Z/ ~! R* |
#include <linux/gpio.h>
6 i& `7 j" \/ \3 x#include <linux/leds.h>
5 g2 ]" m" y! f, p8 X3 ~! t% s. J#include <linux/platform_device.h>$ e/ N" u3 z+ ^1 y7 g

3 B: B3 I) C% Z; X#include <asm/mach-types.h>) }( ^+ X- R* H- C3 Q3 O9 M! ?; e
#include <asm/mach/arch.h>, s( }. m/ @/ E- k8 P& W( Q) J
#include <mach/da8xx.h>) E3 }1 Q6 N9 K# I1 w9 E* d$ T- |8 H
#include <mach/mux.h>* A! @) s2 w# g8 @, X

. g. r( g- R4 C( j#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 {( x" {4 a* G: l! E
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- A& x  m3 r4 y1 l# r
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  W! F  m/ t- g, Q3 H7 B9 m9 i
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# e/ t8 w/ R$ `( H1 ?! w

. q: j( @( H9 W  {3 O; J; k/* assign the tl som board LED-GPIOs*/
: \$ N2 E3 x6 L' m7 @' u3 j  I% @% mstatic const short da850_evm_tl_user_led_pins[] = {! c2 \) F- @+ s- M- i
        /* These pins are definition at <mach/mux.h> file */
0 A( `& f* P( o+ C1 {% ^        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( |, q6 W4 M% V9 E
        -1
  u: Y$ E2 i% ]' s! h% q};6 M; x) _  E& q
, |- |. g, o8 W4 }, g9 o+ E2 Y
static struct gpio_led da850_evm_tl_leds[] = {& [1 k% ^! g' Z3 P0 \
        {
  v* ?8 J3 E1 v                .active_low = 0,
# X- L+ |6 s+ C9 o! V# J. P3 w8 x5 P                .gpio = DA850_USER_LED0,' `% d4 e# K# |. E0 c% [
                .name = "user_led0",' I; |2 y$ y( L: L6 ~3 T
                .default_trigger = "default-on",
3 }' V# |# s4 A4 S! j/ N$ b: W        },6 F; F! R- m  W* l
        {
- L% ]/ D$ s1 w' U4 a' i0 P" k                .active_low = 0,
0 U6 a  x, p. Z                .gpio = DA850_USER_LED1,
& r5 I$ ~1 l& G* h                .name = "user_led1",
8 n( ~) ~) ^4 B- U8 u                .default_trigger = "default-on",
7 f2 p: f7 M3 j2 ~8 X$ i        },/ h3 b  A# F$ C& y$ j6 p
        {2 q, F5 f6 M- \; Z5 b
                .active_low = 0,
! c+ b7 o, Y4 ~2 K( Q- s3 W5 l$ ?                .gpio = DA850_USER_LED2,8 V* r/ v  Q; i
                .name = "user_led2",
* M) U$ k) r* i' E* F9 ^4 L                .default_trigger = "default-on",6 [- _) i! ?$ R( l3 {; M
        },
1 S: E7 o* V5 b  K2 h' c; C( }4 H9 m- e        {! ~8 Y! f. f* n" _9 `. E
                .active_low = 0,
9 S0 [# C4 t# G                .gpio = DA850_USER_LED3,
3 m: z3 a; F: t8 W3 k" r# a                .name = "user_led3",
2 o; u4 i; E) `, c! Y3 P2 e                .default_trigger = "default-on",# L2 K5 U, A7 u3 T; \
        },
5 P9 G4 n; q; e* \+ X};0 l& w3 ]; {/ Q4 t

5 p4 G0 @. D# i9 X- ?. O, ?, b! estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, ^! T; Q: H9 n* `& _) R/ Y
        .leds = da850_evm_tl_leds,: F, p, t# z; l7 j/ o2 z, W  m  d4 B
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( n$ A; S0 S6 e# I& \& S! S};) i6 N* ?0 m4 [1 S; o' w
$ P9 R- `' E7 Z: h7 t
static void led_dev_release(struct device *dev)) N$ h( r; b1 x: B
{
8 T8 u. A  K9 s1 {! r};
4 V( B' o% L. n( m: P
: K8 i/ X1 K+ ^6 M# n8 Y) e% a: Cstatic struct platform_device da850_evm_tl_leds_device = {
, Y3 C6 f% L+ L' t        .name                = "leds-gpio",9 ^  a$ |9 @  c9 ]9 @7 ]
        .id                = 1,
/ A6 S* t" [+ b' Y' Z" c* k        .dev = {7 F3 z$ ?; q; v, ~$ X- o
                .platform_data = &da850_evm_tl_leds_pdata,8 O; ~( h, }$ X7 P$ C7 i. X3 \" s" e
                .release = led_dev_release,# F; c8 y. k. H; E, F
        }
0 l2 x' @' `3 C};
/ D& f6 g# W0 F! C3 v* j* `2 G7 F1 K+ a" W: J$ Z
static int __init led_platform_init(void)
( D# e+ j; C2 Z: c4 Q! a$ ]1 T{
  v$ T: P2 l" H' t' `* ?% J! ?) C6 I        int ret;
5 M$ @% R  H0 l2 s: U5 F7 o- q& l2 b#if 0
8 t$ V3 l  I" d, u0 A+ o$ c6 q        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# s8 [! h4 G' y3 n        if (ret)
& J7 k9 o" D  z% X0 `                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 ]' b: z0 s0 k; K                                "%d\n", ret);
$ r9 _8 G# m( v8 x2 B; @#endif
1 \/ T# [9 f9 n; ?: W3 X        ret = platform_device_register(&da850_evm_tl_leds_device);
$ w; d  d: h4 p$ t5 e        if (ret)
, }2 y: _) n% d- ^; \                pr_warning("Could not register som GPIO expander LEDS");+ a5 Y  ?  K% p8 e  w" D
        else
9 \! X! l& T) a6 R                printk(KERN_INFO "LED register sucessful!\n");
1 e' R$ G9 E$ h, s  N4 Z3 b  l
0 ]1 g' E1 i# L* l- a. H        return ret;" }4 x# r' Z( G; ^% G, x
}) j8 Y# Q& L1 |' e' m
9 I! ]+ g) p: o
static void __exit led_platform_exit(void)
( `" c' x: V& P$ o{. a9 q& O( Q$ z2 M+ a6 i
        platform_device_unregister(&da850_evm_tl_leds_device);
9 W3 j6 g3 z; X7 p: J) X& s/ d3 k0 R2 X& K
        printk(KERN_INFO "LED unregister!\n");5 q6 Y% K' C* b; v" p
}. S) F5 r5 d  S, \9 @7 g/ h/ G

" N+ k) [9 e4 p" M2 a8 P0 Q- X- `module_init(led_platform_init);
1 e" W- w) u6 a& Bmodule_exit(led_platform_exit);
) G# {" `" O: y& v$ a% l
7 q* [" D, Z& Y6 e4 kMODULE_DESCRIPTION("Led platform driver");
( L. H* L1 J' S5 Q8 s- JMODULE_AUTHOR("Tronlong");6 K* [% s4 F' [6 {1 z2 Y& E- o
MODULE_LICENSE("GPL");
. o' H1 q& Q' c. u& z% j
, d% {! d' Q& o! Z, D4 ^$ s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-14 21:52 , Processed in 0.036876 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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