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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% S, {8 C4 T/ |, _+ `
#include <linux/init.h>
7 a. T1 `" h! A% j( }4 U#include <linux/module.h>
' A6 X% s3 X: o' ^* [: J#include <linux/kernel.h># w' ?* U- [+ s+ C# O( M) ?
#include <linux/types.h>; ?  M& b4 i+ v5 ]0 J
#include <linux/gpio.h>
- o- e1 Z0 B) \. u. s#include <linux/leds.h>) L; y  k0 Y# i4 n
#include <linux/platform_device.h>
5 U/ r6 U( x; V5 Q5 V+ ]4 y. E# z# F% v3 U6 w7 a- R. {
#include <asm/mach-types.h>
, |- x# C# b7 ^- [, e) O( v#include <asm/mach/arch.h># A( ?( |' Q: M5 G1 V5 }
#include <mach/da8xx.h>% k8 x' Y$ H1 P3 z
#include <mach/mux.h>
6 w  X2 e$ s6 E9 }2 F: D; `' q9 s7 @4 I+ T. g
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 H# x( T/ Y: L6 R#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% ]9 V5 J/ d. P9 L& X#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 f/ E' k* q! t' }3 y2 {
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' Z# w/ ?7 _( \& K6 _" M
# s6 R  O0 E, P0 o9 k( ^- ~6 H+ [/* assign the tl som board LED-GPIOs*/
) n, _  G5 M- t9 |static const short da850_evm_tl_user_led_pins[] = {
# j$ l4 K4 \# M6 e+ }        /* These pins are definition at <mach/mux.h> file */
7 Q# u- `$ X5 ^7 \        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
/ \( L0 h2 U+ s* q        -1) v0 \  h5 X8 N
};
3 h4 m! w$ K& P  \! q( n& U% q5 B; b. |
static struct gpio_led da850_evm_tl_leds[] = {
: J, J* O& C4 H  v3 s        {8 }3 U8 Y; L3 u
                .active_low = 0,' y& Y. i# e. H9 [
                .gpio = DA850_USER_LED0,
. M1 T6 }: X& r+ ]6 N                .name = "user_led0",  k. d8 }6 [; m9 m. j1 y
                .default_trigger = "default-on",' l: R. ?! J. U$ ?, W
        },
4 X% ?% Q# W9 C0 w        {0 Q6 Z5 {; h7 ^) y8 @! C% Y4 V3 d& }- z
                .active_low = 0,
! D( W* p9 Q, L. n                .gpio = DA850_USER_LED1,0 s6 A# e$ F0 X: `8 k
                .name = "user_led1",1 ^, U( _! X: Y; `
                .default_trigger = "default-on",
4 g% |$ B) h9 l5 k        },( E. ]- p. j$ m) V( t0 o
        {4 X0 ]# S) }# y4 \: w
                .active_low = 0,
6 Q; v: Q% B0 N; C* v, M3 H                .gpio = DA850_USER_LED2,. B* Y% u' \8 X, t% O) A. S8 q
                .name = "user_led2",
7 ]( n  V  ^, E/ }                .default_trigger = "default-on",* A8 q' |! A5 L# g
        },
1 D$ m, g) V: L+ d6 P- O* Q. r        {
1 z% b3 L8 A$ n5 I4 P" h1 c                .active_low = 0,
8 d4 ]9 x4 Q8 e0 `6 p                .gpio = DA850_USER_LED3,
2 L8 Z$ M' d) _* [                .name = "user_led3",
  y1 P! y. B7 A6 x! l( H                .default_trigger = "default-on",
: N1 ?0 P3 H/ l. M        },( n1 D1 ]% m% y" J& t
};
( H: [( m6 z1 N  L: V4 a4 P9 P3 I5 R+ i+ G: Q) ?9 }, Z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  K  Q# ]% O7 Z4 t3 G, c/ }
        .leds = da850_evm_tl_leds,7 y7 I! q& n; y  Y/ w% v/ Y* K
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# I, h5 o: m$ c: Q
};
8 P* o2 h9 e( g- L% J
1 y' v1 S6 B/ m3 m: Bstatic void led_dev_release(struct device *dev)+ @/ ^" [6 }8 H2 o1 @7 y9 s& Z( @! ?
{
4 A4 n$ p* z4 r3 p4 U$ T};) u9 C, K# L9 F/ |5 Z6 q* f, }2 ^
( g6 y0 _# r6 B9 _# N  R
static struct platform_device da850_evm_tl_leds_device = {
9 }' n, ]9 W/ x        .name                = "leds-gpio"," P) ^# Q4 R" I
        .id                = 1,0 R1 q0 ]! _! A+ Q  W$ i8 |
        .dev = {
/ d9 Q1 T/ y7 j/ Q( ^                .platform_data = &da850_evm_tl_leds_pdata,- k' U1 @! F  a8 K+ l# c/ K: e" u! V
                .release = led_dev_release,
2 j  ^2 T6 i5 Y        }
3 i& N/ V9 h" U$ B};
; W  r& L* a6 e9 n% {$ D. j: `7 ?5 v+ k
static int __init led_platform_init(void)& ]7 a, S+ R( u( O% x
{# D9 L" d' Z- g" ~5 C0 C1 j6 P, y
        int ret;$ h% Y* }$ {7 ?: b* @3 Q; d
#if 0. G9 |: i! L3 `% P
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
" a" p, D/ a2 r; _8 J  W& b3 B        if (ret)1 F4 m5 t0 R& |$ G
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ G& {  y9 c( f3 T4 @( ?* c
                                "%d\n", ret);: f! e; k, X' A8 o% }
#endif3 \, d+ A# A! o) S5 h6 j: X* A: n
        ret = platform_device_register(&da850_evm_tl_leds_device);/ p) l1 V1 B- u
        if (ret)
3 a! ?7 l! D" K                pr_warning("Could not register som GPIO expander LEDS");
2 C, G5 ]: |9 Q        else0 F/ o) d) S$ P* n* {
                printk(KERN_INFO "LED register sucessful!\n");
9 r1 D4 Z! n2 K& q8 ^& E% x
- w; H8 ^6 A  E6 C% I- C        return ret;
  J6 c* h  a' F. }+ _8 t0 C}
# P0 `7 R- k6 N6 r0 `) m
( K3 W. o. b2 Z) ?# i1 pstatic void __exit led_platform_exit(void)& J& F$ F# Q% D  @1 Q- f5 e
{, a$ ~5 }2 B1 S) K3 k
        platform_device_unregister(&da850_evm_tl_leds_device);
3 |4 C6 ^4 Y& j1 ?% ~3 C7 v3 D& f- u3 L5 T2 c1 O" F0 X* s: P4 b) T
        printk(KERN_INFO "LED unregister!\n");6 N" d* L* b7 G$ G7 \
}3 s9 g* d8 \6 q+ o) \1 C

0 Y( n% a( A5 I& B3 P; Kmodule_init(led_platform_init);
: ~# R2 M. ^3 v  E2 p$ J: m; Omodule_exit(led_platform_exit);
% v* Q) Z1 a8 \% [! v
" b8 r! M7 q- B/ \) EMODULE_DESCRIPTION("Led platform driver");& }5 g4 ^+ b5 K' Q
MODULE_AUTHOR("Tronlong");
4 u) }2 V# u( C  N; e# UMODULE_LICENSE("GPL");  }! R$ X# m) i; T  v. a" Y+ `
" p( a: Q! A: C: n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-25 04:06 , Processed in 0.043030 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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