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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) p' D2 k, I3 g' x. A& @#include <linux/init.h>
& y$ R# ]! _5 Z  e' G#include <linux/module.h>7 V2 T: J% G: p6 J. f# z1 _
#include <linux/kernel.h>/ W. A5 E, y8 ^+ S
#include <linux/types.h>
" E# }# `* V6 T& e5 h#include <linux/gpio.h>
9 X& k' T! g& x#include <linux/leds.h># H; i# h8 `, n
#include <linux/platform_device.h>" a7 a+ F' x$ W7 G6 g1 R7 ?0 Q
. ?5 j# @6 b: J1 q
#include <asm/mach-types.h>3 O+ W# p8 C" {' Y
#include <asm/mach/arch.h>* _3 ?$ I" v2 y9 T0 O
#include <mach/da8xx.h>
3 U$ J$ Q$ q2 C#include <mach/mux.h>4 ]' j& M  d) \1 c0 C. T; N7 q

( T, k- u# E+ Y& K#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ X  t. y& V6 l# s#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' o( q( N; n% y0 \9 ?& [
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 V. |1 Z* H' F2 Y* ]#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): y5 k" Y3 x1 }" v% S
; Z7 u% w3 f: e! }' \! t
/* assign the tl som board LED-GPIOs*/5 V! K; x' f9 Y- V7 p5 D" @
static const short da850_evm_tl_user_led_pins[] = {% n7 s6 X; K' Y' M( E
        /* These pins are definition at <mach/mux.h> file */
6 r. I5 V3 T& ^, P6 K$ h        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% {7 `; s" \4 {% g6 ]; Z
        -1
) D0 L3 R; F: Y2 ~/ @% v" e};
% f. v3 p& H/ c* a8 v
( F+ y2 ]" {& M$ A  O( |static struct gpio_led da850_evm_tl_leds[] = {6 W: l% [1 f# A4 y
        {6 [8 t  \$ Q) j# V
                .active_low = 0,
9 u3 v* E. q! E0 c  K1 a                .gpio = DA850_USER_LED0,& r0 d3 {, ~. c/ W+ v
                .name = "user_led0",
. z4 f. K! G/ O' w) o5 L                .default_trigger = "default-on",
7 F$ s3 n  W; b  a# B" }; l' g        },
9 E. i0 y. e! ~7 t) [2 J. D        {2 m/ F# D# h; L0 z9 D' d! o: M# t
                .active_low = 0,
3 x/ s3 b5 C* K$ _5 L* K                .gpio = DA850_USER_LED1,0 @* M$ D. m$ U5 e
                .name = "user_led1",
/ Y. l9 G# O( B8 W% m                .default_trigger = "default-on",
$ H3 P& U/ z6 z$ N# B; b. `( v# v* p        },8 x& g; S0 \4 `+ C! w, [# w, j; E, W
        {
2 t6 a& a4 v3 \1 b( z$ E                .active_low = 0,
( M. v3 X9 y9 K* x- h                .gpio = DA850_USER_LED2,$ Z( C* W- r/ I: o* U+ K
                .name = "user_led2"," c  z# K! H8 e6 F
                .default_trigger = "default-on",2 P. d2 ], s/ V1 y, \' m
        },
' |. L0 O* Y% x& Q        {- N% {: Y  }2 ?  N/ f4 P* q
                .active_low = 0,
) |1 }7 Y# T0 E) U9 d6 k* e4 |                .gpio = DA850_USER_LED3,! `7 E' p% Z0 c6 S* T, X
                .name = "user_led3",
2 `. Z+ E& y3 H2 a% ^0 H8 X- `, ^                .default_trigger = "default-on",
8 o7 K; H0 l. ?' o        },
  m; X( E$ j& @( C  l};
5 r3 n4 C$ \) u, i( s  U( b8 n! p7 V& P" v, r3 P5 r6 V
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, T3 T, C+ E4 W! A1 _1 K: ~* f        .leds = da850_evm_tl_leds,$ f& k& u1 ~9 j7 A0 q/ x
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& F( f) p1 U8 ^/ S# e4 _$ r
};
/ i( P& u& a; F+ D) }% F
$ a1 _* _8 c8 b! v* _' G. t  @( fstatic void led_dev_release(struct device *dev)5 B: M) `: I2 q( C0 J! ~
{
0 \$ O" u5 g+ g};, n8 p. E6 N8 D1 H( r

1 S4 @7 |+ @: R% B. Q, sstatic struct platform_device da850_evm_tl_leds_device = {
' m1 o) T( h5 K        .name                = "leds-gpio",- r( s& O! A, m& H( o8 I0 ^$ K- T
        .id                = 1,
+ h* a0 |4 l* Z, n+ y        .dev = {; D) K: R& r2 Z; e4 \: \# L6 m
                .platform_data = &da850_evm_tl_leds_pdata,
: g$ k  Y& F  l& J% |5 a1 H! {                .release = led_dev_release,
1 A7 N5 Z# M2 G2 _# Q) A        }
2 c* P/ ^5 v8 i  `- g};0 d3 {! T& M" e4 ^, ^
: P: R; u, C6 n# {  c
static int __init led_platform_init(void)
  z. E' x5 w% c1 O* B8 p{
2 ]9 K4 {" t& t9 K0 E1 A# C0 r6 J        int ret;
8 ~9 w. p) {; m8 r: @) u5 ~  O#if 0
$ m: r4 R+ \9 d, `' T        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 M. M1 J* @# J4 y5 z' q, Z: p        if (ret)
* k  a# ~7 Y5 @/ H* z$ M- B                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" ?" K- ?. s) D$ E  ]! ~1 ]6 }2 l* B. B                                "%d\n", ret);3 [4 u( s* H" p) O
#endif8 [* {8 L+ O4 R+ _. `; ^' t8 c
        ret = platform_device_register(&da850_evm_tl_leds_device);1 y  b% T- p/ p& U7 [( z
        if (ret)3 k+ _- Q+ f9 D0 g$ \& `- i
                pr_warning("Could not register som GPIO expander LEDS");  Y2 v6 T9 l1 A$ V3 P
        else; L  U/ j2 F% a
                printk(KERN_INFO "LED register sucessful!\n");7 |* R0 W' ~; D( \
# j1 f- i" }0 t0 Z' E% p9 u
        return ret;
. v7 E5 L9 |" a5 S$ d}5 C7 u" M2 q4 ]7 G3 X, h7 X

/ Y! j; B: ^7 U- i. Astatic void __exit led_platform_exit(void)
7 @& {- G& E* Y  _% Z{6 ^# w( J: K, [6 R. F. B
        platform_device_unregister(&da850_evm_tl_leds_device);
6 H- a. M: [  c9 j7 ?7 c; g) W# [" L2 u7 p5 `
        printk(KERN_INFO "LED unregister!\n");
. [( a8 [3 A" w- }3 V; `}
  f2 o+ o7 n# a/ D. D+ P3 t) w; q7 r/ z0 r* [
module_init(led_platform_init);, M9 ~4 k1 f0 L$ C$ S
module_exit(led_platform_exit);! x9 Y# a9 h+ e# `
6 ?$ }9 D0 V+ o
MODULE_DESCRIPTION("Led platform driver");
* `. A3 I5 z2 R6 uMODULE_AUTHOR("Tronlong");$ l; Z, n/ I8 w
MODULE_LICENSE("GPL");: j+ u. ]$ x, e9 \* Z' U

  @* c( f( Q6 e! k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-20 05:07 , Processed in 0.051081 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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