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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 Z: T0 @* A+ ?+ I: a5 n; K
#include <linux/init.h>
- g3 A, a. r5 a$ g, i#include <linux/module.h>
1 r6 G2 b5 @' g! P! c6 ~8 s#include <linux/kernel.h>/ ~$ |! v7 J* K0 ^7 j9 a* x
#include <linux/types.h>
' o: [2 r/ s6 V9 d. _6 y#include <linux/gpio.h>
8 J& G/ A7 T% \1 [6 t#include <linux/leds.h>, H6 a- H4 l6 N
#include <linux/platform_device.h>
; R# G1 v) y/ j; [
9 F% u6 M# G1 a9 |. C#include <asm/mach-types.h>
/ W1 d: B5 w$ d: `( G5 ], p#include <asm/mach/arch.h>8 [) l9 K/ D+ o
#include <mach/da8xx.h>, i" A; L& y) p: C/ S/ _1 S
#include <mach/mux.h>" R- n6 n# v& {+ G

8 ^4 }: a0 Z' k. Q/ j+ z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" \6 e+ W. M- y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" I: x  K, w) V* n7 O; x  p8 t. e#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); v7 a+ \* c7 i& h! C) [% {
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ ]. `, `- c1 k" ~. L  D' Y& @; U
1 x$ Y9 [; f' k: b: A/* assign the tl som board LED-GPIOs*/1 `  ^& Y' R7 S* T" G
static const short da850_evm_tl_user_led_pins[] = {) e, v. o9 ~9 E+ K8 X: b" j
        /* These pins are definition at <mach/mux.h> file */" c0 Z8 R5 n1 s
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 m8 z( F. X+ A9 X        -19 E& g) B" Q. q5 X' Y
};
- p! H9 I! y) A4 _+ |7 y  i  R5 M% m1 |
static struct gpio_led da850_evm_tl_leds[] = {
8 h2 J# P  z" U0 l        {/ T. t% p- t, w
                .active_low = 0,# W' m6 v+ p2 T; F
                .gpio = DA850_USER_LED0,
" C6 `& A! c1 B                .name = "user_led0",# j! B' X5 ~. _! w
                .default_trigger = "default-on",
* E. D4 H8 D' _0 y& z        },
, C- ]: {4 f& w- {* B        {; U" ~5 _# R$ P! @; V% r/ L
                .active_low = 0,6 z6 \" Y+ F' v0 O2 w
                .gpio = DA850_USER_LED1,; f: R% e7 Z1 D6 @
                .name = "user_led1",7 F4 H& Z6 }6 x7 T: R( h  D
                .default_trigger = "default-on",
9 X; _- x7 h) x2 R7 f+ a7 v# n. A        },  W1 g  q: ]- Z: P+ |, G( G" L
        {$ L  g' |' \5 g# L% R# N$ Q
                .active_low = 0,& h( H4 O, }# A/ k5 j
                .gpio = DA850_USER_LED2,9 r2 }* B/ i9 d4 }
                .name = "user_led2",
$ m1 ?- c0 U' l% _) f                .default_trigger = "default-on",3 M' B# p! w3 m: X# T
        },
$ U/ S& b, [9 \' _' b# J- D        {6 m, X4 Z& s8 C6 H
                .active_low = 0,* L; c* X3 V* z( m2 N2 @+ @
                .gpio = DA850_USER_LED3,. L' M# F& ~4 ^
                .name = "user_led3",
2 i+ p% m* B" O0 A& t                .default_trigger = "default-on",! u& L: ?% v( S0 J. B, _
        },2 K  s- o* A8 L4 b! u1 S
};+ j5 {$ ^; l, |

8 Q! x; a& ~2 h3 j# Y4 Y( v6 q, d3 _static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; T4 ]9 S8 [, R  S        .leds = da850_evm_tl_leds,
* T* r# }- u+ C( X6 h1 ~, I        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. b5 ^- f; ~& y$ Z, E
};
4 q8 m5 g/ z( y0 Q& Y
3 A$ O, c: X7 R+ x* l& Mstatic void led_dev_release(struct device *dev)! o  q6 C, p& o9 l
{  p+ G$ ~- h2 A; {: h# H
};' x' m2 S0 [/ c9 F) [6 H# G4 ^

* v; Z4 Q. s6 B6 a: tstatic struct platform_device da850_evm_tl_leds_device = {
  F5 N: J  [$ D8 n$ M8 @& u. r        .name                = "leds-gpio",$ k) i; ~( n6 A( B% t
        .id                = 1,
5 [. u! i" G4 h8 J9 Z+ g; N# \        .dev = {
1 @" P6 n3 w- e! O/ z; {                .platform_data = &da850_evm_tl_leds_pdata,. k8 d9 T) v* O+ F9 z
                .release = led_dev_release,8 Z0 V5 d  |, _" b% k( N+ E
        }* p- M# s6 i! W
};$ q# J/ _+ M7 r
2 J. H3 m, U9 V4 G
static int __init led_platform_init(void), T( m. i( p1 u
{
: K# B4 P3 Q' m/ O        int ret;
+ s' |$ l; R# I4 ~1 d  `#if 0( }6 R& O& I2 u3 T' G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- A& f3 @  q* w% s9 Q+ U$ d! ?- q) x        if (ret)5 e( [' _( U9 o( i, L
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". S4 k9 ^0 Y& G5 ~/ P/ S
                                "%d\n", ret);6 r4 O5 G' R8 g5 F  N. s1 J
#endif
) \$ E! M, ~1 a3 o        ret = platform_device_register(&da850_evm_tl_leds_device);) n, y3 c: r9 @% [
        if (ret)
4 f& W8 L* n. }9 \! W4 B* ]5 D                pr_warning("Could not register som GPIO expander LEDS");
1 N, d+ h+ K- e  g) N. A3 g; R/ C        else
: B" D" U4 v& e3 q- ]1 @/ M' ~                printk(KERN_INFO "LED register sucessful!\n");# o9 {1 B$ ?3 P9 k! T& T2 l
2 [- M' P6 H. a9 H) {& `
        return ret;
: \8 g+ g( i3 q# D0 e}
" G$ @- [0 ?( d/ c7 Z6 U2 W: c
; A7 b- s/ E7 Gstatic void __exit led_platform_exit(void)
2 J( z9 l: s7 [7 L0 f{5 S' k' @. J3 ~4 A( ]
        platform_device_unregister(&da850_evm_tl_leds_device);
$ D  |) Z) q! k2 B& }6 s: r+ J
! z5 F2 W: V( x) e9 G2 p# n        printk(KERN_INFO "LED unregister!\n");
6 P( V6 t2 G( N' J}
+ _5 m2 g* V! O
/ o; t2 k9 E, R# k: p6 }module_init(led_platform_init);# D3 Z1 E& j3 J" k1 r
module_exit(led_platform_exit);
% Q1 l9 a& t+ n! }8 {- Q; a- P4 R, e0 I* q1 p* G9 |& M( i
MODULE_DESCRIPTION("Led platform driver");0 N/ e0 [! [- K! N  a8 E* ^- t( Z, s
MODULE_AUTHOR("Tronlong");
( m- G/ B, L! [( \MODULE_LICENSE("GPL");+ Y% [, P. c5 T2 H3 u

3 I8 K: t1 H, X4 f2 Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-2 16:48 , Processed in 0.039423 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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