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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 o0 t1 k6 [& ~* e#include <linux/init.h>; S* }5 w+ F% Y; |6 k4 T6 u9 e: R
#include <linux/module.h>
9 V7 U+ G" _5 h" ?: H#include <linux/kernel.h>
4 v1 K7 F! i* b: E#include <linux/types.h>
) l- O6 D) H! z6 O. Y5 \* Q#include <linux/gpio.h>' H+ w% Y, T8 v! q3 r
#include <linux/leds.h>
9 v" [5 a2 m4 Z% ]- h+ f#include <linux/platform_device.h>$ Z1 f4 J- R% d: K/ i
( k4 I$ {# D7 D) U& H# o4 |
#include <asm/mach-types.h>+ D1 \1 C) i: O# Y* I& C
#include <asm/mach/arch.h>
/ x! N1 \  T- }) m/ m( P) w#include <mach/da8xx.h>; L0 F0 O# `6 r! R* P
#include <mach/mux.h>
  n2 ^+ o7 g+ V! J9 C. M, v
7 y6 y3 @$ U7 u+ }#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 c( K7 t. ~6 n3 l$ ?0 `
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 o; i1 b9 t& Z/ b, P' L#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 ~' S# `' ]) T$ H: t6 A: h; T#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( \. Q4 E* T1 W6 {8 Q: S: |, m. Z) D* t0 j
/* assign the tl som board LED-GPIOs*/
- K/ O' x; z: U  g. Kstatic const short da850_evm_tl_user_led_pins[] = {* o: c$ p7 Z' _! c
        /* These pins are definition at <mach/mux.h> file */$ z3 ~: N- I9 `2 t* r4 q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) o, d& y/ y8 n; @0 y        -1
7 H) F. q1 [' v2 |. B};) T; s3 c( d$ O' j8 v+ R& ~& Z) o
; C5 v" Z5 k; _8 q/ `
static struct gpio_led da850_evm_tl_leds[] = {
- Z0 A; X; `5 T        {' D0 e& L. Y' D  m
                .active_low = 0,( u' x( m0 m6 U7 t$ B
                .gpio = DA850_USER_LED0,9 M% z. \: A. V. b: N- b, l
                .name = "user_led0",  K4 X3 n/ `: S
                .default_trigger = "default-on",; r* k9 v! F3 T
        },4 B3 |, W8 s6 ^" E" x" M
        {
: D: B  P1 s, u& {5 E, v                .active_low = 0,9 z5 i: r/ H  X, A* j, D/ t% H
                .gpio = DA850_USER_LED1,9 W, F8 P# n8 \) x% S
                .name = "user_led1",8 ^4 t* ^2 M; S8 M# f' G
                .default_trigger = "default-on",
1 k6 w" w5 a5 a        },
) G; T$ r* W2 q, @8 W        {
0 l# w( u8 B0 S8 e8 Q1 j                .active_low = 0,
7 e7 F5 J' W. n- y$ r& V% z  G# m                .gpio = DA850_USER_LED2,8 F2 ?( z, R" W9 y0 U. _" C/ B8 ~3 j
                .name = "user_led2",
+ m/ d3 |" ~% [7 x6 m                .default_trigger = "default-on",
/ S( i) F# c$ p4 o* h        },
, H, v5 L! S, S2 ?. O1 Z        {
! e. a7 |; E2 H/ T! o1 W                .active_low = 0,, }7 Z& o7 z( Q# c# d
                .gpio = DA850_USER_LED3,
9 G% \* Z- h1 B1 @* i8 V+ p: \3 L1 N                .name = "user_led3",; h3 ]$ U; u4 ]
                .default_trigger = "default-on",
! O  @9 p0 F3 r1 m: ~8 C2 x7 _% R6 t        },9 M8 J, g1 T" ]3 A7 p9 n& Z
};
3 y- d: U" M4 S3 t- d8 y/ P  A- |7 ]- F4 K4 A  W
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) ^. ^% G5 r7 W& t9 O
        .leds = da850_evm_tl_leds,' j' D$ Z5 L' a1 w7 Y. [, \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ V. h! }, e) y. B: `2 B7 I
};# h: R5 i8 C& l+ e) c: @# l5 @
! [9 i4 X# k9 ~4 `) f
static void led_dev_release(struct device *dev)1 q8 r# |3 M, d9 M5 n/ {
{
/ p/ `1 g2 J+ C+ l- b' L};8 l& O, w4 P" D/ ?( _
4 n2 V) f( n+ r9 m/ p
static struct platform_device da850_evm_tl_leds_device = {
8 T, p9 w& Z) \$ @/ `2 m- o        .name                = "leds-gpio",5 c$ c5 T1 M3 p. D/ ~
        .id                = 1,
4 @; S$ x* u  q2 D) ?" W: j8 S        .dev = {
, K  Y* n; t8 W7 E) v                .platform_data = &da850_evm_tl_leds_pdata,9 \  X' k% x1 f
                .release = led_dev_release,
& F0 R. X! F  K  T/ U        }
- Z3 F2 x' c% w4 u1 V8 b( ^};" v/ c$ f. Y! O8 X
5 H1 `7 I6 l2 L8 {/ x2 K0 O
static int __init led_platform_init(void)
% z% Y% N( `3 e1 y8 q{( A9 c& D1 T( P/ B
        int ret;
: p5 u' o; n5 {1 V2 ]; U" m7 H#if 0
- S; w6 M8 O: r' q9 M7 T7 G2 s" {        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
" j: B. e3 a7 a5 l        if (ret)* I5 g% k. j: j# x* l
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 P% ?1 e0 m7 z1 ?6 x4 r1 a                                "%d\n", ret);
7 T) r. ^+ x( {) f3 _#endif
  v- }$ c; Q; i9 C9 _2 b* K; P/ R        ret = platform_device_register(&da850_evm_tl_leds_device);" C/ _  C7 x3 s6 w
        if (ret)
+ C( v- l9 ?) b7 X8 x                pr_warning("Could not register som GPIO expander LEDS");- X" T5 `" }6 v  c8 @) a3 t
        else5 ?: w3 y% z0 \- M. I' u
                printk(KERN_INFO "LED register sucessful!\n");
- s  Q( \7 f/ D+ s) ~  T
; O* S  ~1 b+ o2 L) F* a* {        return ret;
8 |8 p2 a: a1 p6 c}
* a" G+ O5 l. p# R
. u8 @/ w1 v7 W6 k3 P% q& Y# ostatic void __exit led_platform_exit(void)* W5 o7 p, p2 T1 [! t+ ?/ |
{& P- o) ]" B* ]
        platform_device_unregister(&da850_evm_tl_leds_device);+ k$ |( q/ R" _

6 ]# `6 X/ L3 x        printk(KERN_INFO "LED unregister!\n");
/ j( _' i3 m6 c! j# [}/ b  }. G3 X1 x/ w( I* Y3 [

1 P: o' |  V3 X) t2 g) d& Dmodule_init(led_platform_init);
/ D5 k2 B, ^/ Q  R1 zmodule_exit(led_platform_exit);) ]# l( g' O* H+ w

/ i; k/ ?3 n% k2 B3 \' DMODULE_DESCRIPTION("Led platform driver");
9 a& H# f" ]8 ~8 J9 ~& U; w: [0 `MODULE_AUTHOR("Tronlong");1 ^2 f$ D/ b& x8 j  R
MODULE_LICENSE("GPL");
3 |5 |9 D9 ]. Q( K! D& c; }. k( O& s7 k$ B# f! E; F% \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-9-16 17:20 , Processed in 0.040470 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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