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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* o- N1 o2 y: S9 {& W#include <linux/init.h>
6 ~- R" q) d% v6 p#include <linux/module.h>4 J3 z- q% s' [' V3 M; d# }7 B
#include <linux/kernel.h>7 @5 s% G5 W5 E+ c; v6 s
#include <linux/types.h>$ |1 D$ G' ^- G; t
#include <linux/gpio.h>
; E0 g9 g4 b3 N9 d$ j+ E* o, l#include <linux/leds.h>
/ i# i' g9 R% g# o! K#include <linux/platform_device.h>
* p% f* ~5 u. I, b8 K: M+ @$ f4 g6 P; k) j- D# E0 S- J1 ^
#include <asm/mach-types.h>& Z5 ~7 F6 i+ X- b$ {
#include <asm/mach/arch.h>2 \7 J) K+ [, f' o. h. G5 t) t
#include <mach/da8xx.h>3 C7 ~* C5 h* p/ ~$ `  f
#include <mach/mux.h>
1 O6 T! V. {" {2 \2 x$ g5 Y/ ]* k! r' V
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ o( u6 B$ |1 u5 W- r#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. t% Q7 o7 s" x3 P7 b#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' K& ^+ G3 s  C8 ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( d- T- u# _+ U7 N: A
6 n* v1 ]! o# @+ b2 z/* assign the tl som board LED-GPIOs*/8 K# \; c4 K/ v% b$ P  F. H& p" |
static const short da850_evm_tl_user_led_pins[] = {$ n# i( r4 u% p6 d/ P" O
        /* These pins are definition at <mach/mux.h> file */. `/ R3 y- q) T7 z! s+ M3 o% x: g( q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
! R, ?' G; z. Q. r. I1 @9 ^$ w        -1$ v* N; s* K! i: E# q/ w
};+ t$ X- C. w6 e3 G
2 G- f3 B2 a- |! L8 T
static struct gpio_led da850_evm_tl_leds[] = {- s5 d) `# F2 L0 Y
        {
$ `. w! E$ ?( X, [( P* w1 O' k  P                .active_low = 0,
" X: ?% v: i1 k; x( f' {4 a) n                .gpio = DA850_USER_LED0,: t% g7 V. I3 U. R8 Q/ T. b- a
                .name = "user_led0",7 Z. }4 l4 m' _
                .default_trigger = "default-on",
3 d) j6 b. h8 _+ c$ Z- w        },8 w5 N( R, F% {% c1 r& j
        {( O: r& T5 {# v" q
                .active_low = 0,! j7 e$ Q# a' h5 W
                .gpio = DA850_USER_LED1,# z  `2 y7 V- |8 D, H; {9 O2 ^% H
                .name = "user_led1",; `# v; p  `  T  i( \
                .default_trigger = "default-on",& v, M5 w9 Q5 G9 Q* D
        },
$ f7 @# v1 Y3 E9 h* e( I        {
0 j3 R  ]2 p7 V# I- C, A0 J                .active_low = 0,! @. t1 j& }- D$ n
                .gpio = DA850_USER_LED2,
: D. A. |& Y' g4 l) D                .name = "user_led2",
5 L: O6 R5 N1 o2 d+ @8 u7 G5 x                .default_trigger = "default-on",0 e3 L4 r% l( {' R4 A$ S; R4 e
        }," k- e( |4 N7 V
        {
- A9 j" c4 V9 L7 [* X! W) O. Q                .active_low = 0,
$ s( w4 z) O$ u: }4 J                .gpio = DA850_USER_LED3,
8 U9 X! z. q' i& |4 Q                .name = "user_led3",6 Z/ |$ x  o, d/ @$ b: Q* Z
                .default_trigger = "default-on",
' b- R" S7 i+ |        },
* j7 G& D+ d- w- [+ C};
/ P( C" I; p1 J9 b- g# g  D3 B* h- _
: y, c) \' U. _4 H- ?5 xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* ^0 I' z: G' `# o- M) ]: }        .leds = da850_evm_tl_leds,6 L. a7 D5 B; g) c4 U
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 U. n$ O/ h% d# i8 C};
9 N4 Z1 [8 }* w/ {# `/ V
, y( e7 [* z$ ]# N( {2 J% z% gstatic void led_dev_release(struct device *dev)- ]4 w) w1 u  x) Q% b' p
{
& i; a  n1 b& N6 A  i( n9 x/ Q};# Z/ s2 F3 E  a3 V3 T

1 C0 w1 _5 V8 |/ ystatic struct platform_device da850_evm_tl_leds_device = {
+ K+ f& p% R; }/ k5 k        .name                = "leds-gpio"," t' M8 S: E+ h# M. e, H6 H9 {
        .id                = 1,
8 _+ x6 i* e3 x2 i0 J1 w        .dev = {
4 t$ w0 i3 O5 [$ p8 r                .platform_data = &da850_evm_tl_leds_pdata,6 i1 K2 R6 C  N5 s" N$ j" F* n
                .release = led_dev_release,
# r  \( i$ O; H  o9 e; m        }$ N7 n' o: [, B' `# T
};
+ }9 M) W1 x* w) o# k
4 ?# i0 R4 y8 X' S0 D' [' N! p7 lstatic int __init led_platform_init(void)' @3 K( A  l! H& m' ^  L
{
/ w& Q0 ^' u. R, U" H& ?9 E4 p        int ret;
0 Z; F0 ?0 u6 o$ g#if 0; x2 X, L' n# O! z$ ]
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* W, J  _6 M! g5 F8 R        if (ret)
8 z+ O3 V& G5 Z/ G4 v                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 C  k( C, c& \  p6 A                                "%d\n", ret);
; U: O( b7 P! ?, w4 b. y9 X( L9 h- T  O#endif
% U% s  Q* [/ L( I' U        ret = platform_device_register(&da850_evm_tl_leds_device);# K& X4 g$ E% z2 E$ e
        if (ret)
% ]9 O+ Y" x& |* n' y  M                pr_warning("Could not register som GPIO expander LEDS");
. Z/ x- p3 d- S. P        else
+ ~& l4 U7 a" \                printk(KERN_INFO "LED register sucessful!\n");7 @  y. A/ a  r3 H" B8 H% b7 {

- W: }: `3 ~9 o8 \/ g) J# r        return ret;  c8 `. u" `' U' T5 L
}7 q+ J- |  B5 a

% `& `6 Z* Q, N" Jstatic void __exit led_platform_exit(void)
+ M* S, ^+ o$ f3 {$ K{
: d0 @" P9 O, |4 g% T$ H- |, O        platform_device_unregister(&da850_evm_tl_leds_device);
* L" U7 h0 h/ V* h: A9 a
' p) h4 ]  Y) Z1 t        printk(KERN_INFO "LED unregister!\n");/ D  z; C( {% s: q' Y# m
}4 n/ M4 s; T8 s6 V1 q: Q) P

6 H& {* A6 b9 W4 `module_init(led_platform_init);% d. _  W% l2 z2 X5 L/ A2 F. h
module_exit(led_platform_exit);
: q  f# @# w4 I  f6 h4 z$ _% z
. w1 S2 m$ Q) MMODULE_DESCRIPTION("Led platform driver");# j* e$ x' ?& Z0 C' Z
MODULE_AUTHOR("Tronlong");9 e3 y6 r8 L3 x9 v! Y& r( ]+ Y6 c
MODULE_LICENSE("GPL");* w: y: e# _( ~4 i) k/ @+ F7 [0 j

2 r# x: |( b, }+ G& U/ r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-16 02:50 , Processed in 0.038453 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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