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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 Z! m6 C0 J; ~( Z#include <linux/init.h>
7 R' }8 S- K" M" Z#include <linux/module.h>
1 P  e* V) T9 B#include <linux/kernel.h>
/ V  W* T0 s8 a) l#include <linux/types.h>
6 b: Z( u6 ]# A% d; ^; @) A3 L- Z#include <linux/gpio.h>
* W' y: l& K: F" h: d  i#include <linux/leds.h>
0 m2 J9 j( S6 r  [3 G#include <linux/platform_device.h>
: ?2 o. b. S1 ^& m: D; y
; W& X2 u- S: y. i# O#include <asm/mach-types.h>4 B0 V. C: q# o# L- ^( U' M
#include <asm/mach/arch.h>8 j- @6 |2 M3 k7 B7 e  o! b. `
#include <mach/da8xx.h>
) @& d5 M5 C+ O3 `5 `#include <mach/mux.h>
9 l$ l( p0 N8 ^  {( h- U# r5 ~9 `& Y! ~; X! c
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" c0 Z, e+ R! M4 O1 i
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& V& n# N; T, U% R: B9 f/ a9 }#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 m- U( z9 J  f7 D: v! F) \  M" D#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& H  e2 B" `9 K
+ |4 m7 b: k! r* r) Y: I/* assign the tl som board LED-GPIOs*/8 C2 p  l& @- }
static const short da850_evm_tl_user_led_pins[] = {
  s5 q2 C5 g0 {4 A/ T        /* These pins are definition at <mach/mux.h> file */0 S* ^! c( j$ q  B
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 Y: C: w+ |1 `2 K; x% U0 T        -17 J. j/ U5 S" m9 @/ J. K
};
. ^" V+ C0 Q' b  B1 o* J1 R) Z5 `4 C0 Q- U# p1 E! m
static struct gpio_led da850_evm_tl_leds[] = {
1 `5 N% c3 I/ _4 B$ S        {% B3 n8 \, A. K. Q
                .active_low = 0,
2 {  M- S  d2 h: E* _& i2 Y: N                .gpio = DA850_USER_LED0,
: G* M2 u1 F  w                .name = "user_led0",
; k' X5 \3 i6 ~& ~3 e                .default_trigger = "default-on",
! N  I" \# F" F        },
$ K7 D; V6 R- v" {. r+ c- I. f        {
4 \) {% k3 \; O                .active_low = 0,
0 Y  a1 w; b+ V7 O6 Q                .gpio = DA850_USER_LED1,6 G& J. p5 `9 W1 v* ~
                .name = "user_led1",2 k' N2 w$ h* ?9 w% x! f
                .default_trigger = "default-on",5 \: g; p0 ]5 N. P
        },
' z8 `6 c6 ?8 n  X* ^1 r        {
4 X2 q0 L" S) n2 I6 W$ x1 d: U0 H                .active_low = 0," P6 g% c  k& C/ X$ V. t
                .gpio = DA850_USER_LED2,0 w$ X% ^. H) d3 d" o4 L, s! A5 F+ Q
                .name = "user_led2",- R. p" u  _6 Q
                .default_trigger = "default-on",. i9 x3 C/ s$ `6 [
        },6 _& r1 B* p$ ?+ m/ _" R
        {, N9 \7 ^. Y. E% q) [
                .active_low = 0,7 {6 @* ~! ^3 l: ?+ P# Q
                .gpio = DA850_USER_LED3,
8 t2 p4 C% R# T; I, g9 q                .name = "user_led3",7 _; a0 x9 G! m$ n
                .default_trigger = "default-on",3 h: j( z& A) Y  N$ O
        },5 F6 h  ^8 A8 @* c/ h3 \
};9 H5 k9 f2 j1 d. R+ Q' ?$ b0 ]( i
6 {- h' y+ |$ E$ m# ?; ?/ B! X4 k
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 A0 O* f0 K2 A9 u        .leds = da850_evm_tl_leds,6 E; N9 C( z5 L
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" }. R- p$ I2 ]  k) `" D};& l, `9 U/ I% T" Y

1 U7 M  e3 c2 T4 J8 sstatic void led_dev_release(struct device *dev)3 c0 V% I, F: |0 Q1 e5 c! S$ N( z3 `
{& U5 Z, i6 v8 {: r' V$ E, T
};# @8 Y, Y- {& H) s7 |

! _% o/ s- P. {& Q. r5 V2 q/ |' sstatic struct platform_device da850_evm_tl_leds_device = {! @8 T& n: t4 }
        .name                = "leds-gpio",( c+ q9 s& I6 R' T3 X5 k
        .id                = 1,
; A' b/ m: Z& H        .dev = {. t% e7 K# o- x2 I. v! Y0 A
                .platform_data = &da850_evm_tl_leds_pdata,
( a. f8 N/ `- C. e5 C+ s; S3 U2 ]                .release = led_dev_release,
; `  I# B: e, s3 d- |5 y        }. {( L7 o5 r& N7 c& O
};% }, L( D% s% |2 p
. n. Q$ w# @8 y# L0 Y$ w
static int __init led_platform_init(void)
7 T5 q9 g1 x6 U' b" u3 p5 G{3 S3 U. |! I' z0 ]6 k) ]0 ]# I) |" ?9 x
        int ret;
* U( y( d( |( b# u+ A#if 0# w) e* W$ t7 S( B
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 k) v' V0 n, l  s! o  }
        if (ret)4 I" c. d  i+ G* g/ x7 v
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; S. i& e, S- c0 P* ]& m                                "%d\n", ret);- K7 V! G4 t1 ^! b0 T# [
#endif8 ?9 Y+ v/ V; Y1 d+ V4 Z
        ret = platform_device_register(&da850_evm_tl_leds_device);6 M1 ], \) }8 a) U6 f' f
        if (ret)
2 x# y- U6 A3 A& \9 g6 e                pr_warning("Could not register som GPIO expander LEDS");
9 L3 X7 A9 u+ V/ V2 u# s0 S: `        else
' k! {+ w: S, w4 D( n( H* Q                printk(KERN_INFO "LED register sucessful!\n");
; ]! G" g5 a/ \$ o$ C1 F
7 ^/ j9 u* H  ?5 k6 B        return ret;
( v8 m; g, M9 R, S# d; m}/ a; f8 `8 O  G- {% e0 c1 I
8 ]- g  j- P3 C3 T+ b! L
static void __exit led_platform_exit(void)
2 z5 b6 Q/ t3 T: \8 A% n{) U) b/ O4 x9 k0 s) z
        platform_device_unregister(&da850_evm_tl_leds_device);: r9 I+ d& m5 }* [- P- [$ C0 N) ]% |! q
- |! m& U6 Q7 |: I$ {
        printk(KERN_INFO "LED unregister!\n");7 l8 I/ ^; X0 T- x! N% R2 r
}" c4 O% C' V1 ^' S' e0 r

( t# l- Z5 b: }  f1 Pmodule_init(led_platform_init);
4 a8 i2 b8 P* ^: S& u; Z9 @. emodule_exit(led_platform_exit);  }) V- V3 v4 d1 N, @& m6 v3 E% u

. U$ o  Y4 Q! v& M  {$ b. ^. BMODULE_DESCRIPTION("Led platform driver");* E; c$ K* d# f5 R0 t' h. I
MODULE_AUTHOR("Tronlong");
6 o5 {' E! P% x' v, eMODULE_LICENSE("GPL");
' I+ F5 q, Z3 L. M5 C# p
0 f  I- Z8 r. s9 V% b: \! M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-24 06:53 , Processed in 0.049078 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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