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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 _$ O2 S, I8 W  v5 q* u#include <linux/init.h>! y& J" A2 a2 U
#include <linux/module.h>/ L) j. _( L9 e( L* c( d) J7 U, m: l
#include <linux/kernel.h>
1 ?4 k. M$ |5 y8 J# z#include <linux/types.h>
* D. O# g9 C8 U* a. Y#include <linux/gpio.h>
# Q: w! s& L% W  N# E#include <linux/leds.h>7 q# Y% O! G/ x2 c- ~
#include <linux/platform_device.h>4 P! w0 O- A' w  Z: c
& R8 f  B* p3 \7 c
#include <asm/mach-types.h>3 b$ K  m( h& f0 Y
#include <asm/mach/arch.h>% M* j7 U: O/ f8 @
#include <mach/da8xx.h>
6 e/ p& J8 d4 f1 B; s  Q! H#include <mach/mux.h>
+ x/ G; A. X5 |
+ g5 G# Y. b6 j8 J#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( F% r" I, q, e& t#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 {5 A+ S( d" v7 C
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 O) p( x+ F# L! s
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: n5 ?' v2 h+ d% x& v8 Z  N5 q5 G5 Q+ V( w; N9 }0 \
/* assign the tl som board LED-GPIOs*/
7 A8 {. H& A3 N; D) o* Y: Z1 Zstatic const short da850_evm_tl_user_led_pins[] = {
: m: Q" N) a/ t0 z        /* These pins are definition at <mach/mux.h> file */0 a, _. \9 s# A- Y2 s9 g
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# _5 K0 l* P$ ?5 T$ F; a" Q        -14 L) A7 Q( n2 F; ^
};
, _: l2 ]1 M  O% ]/ e  ]$ u. P% r' f
static struct gpio_led da850_evm_tl_leds[] = {
& Z* d* O% \, }; I# _        {/ z$ \. @- t- Z/ @7 J
                .active_low = 0,9 T% H/ g2 w( R2 D( F6 v  f# R
                .gpio = DA850_USER_LED0,
% O, o8 Y" z' Q, q, F* W9 ^% h7 l4 @  J                .name = "user_led0",
! G! T! j3 Y7 A! q2 \; C                .default_trigger = "default-on",
; J: a+ |# T# ?# x+ V2 P% }        },! ?1 I# O7 i, c) l5 ~0 m3 z
        {
2 _2 v. X, W+ }. s                .active_low = 0,
6 q! D# T8 B* {( F: n4 I                .gpio = DA850_USER_LED1,( c8 T  x4 ?, U
                .name = "user_led1",
# @: L1 z9 w; v                .default_trigger = "default-on",3 _) z" y* b/ B. ^1 ]
        },
6 a2 K/ C, V. B  F* K! J4 z        {
) _* V% s! F( h2 w4 _                .active_low = 0,
5 G: U% a" q! Q' u                .gpio = DA850_USER_LED2,' v: J$ a/ `6 O6 J
                .name = "user_led2",  ]. q" H( h1 J( h
                .default_trigger = "default-on",
1 ~: l8 E; D2 U# g        },
& e8 H( J9 ], L5 ]' g        {
$ {5 J- u, f0 |# c) W% e                .active_low = 0,
5 p8 c3 T& }) Q3 v& P; P                .gpio = DA850_USER_LED3,
8 n) a1 N# P- p/ Z/ y                .name = "user_led3",
7 W6 x9 L0 N8 f6 S9 s9 e, l5 s                .default_trigger = "default-on",
+ q5 `2 p. }! {  s        },: P4 C# S& C/ M) p8 Q- V: d
};' x+ @! u. y& [  H) `6 y

/ i/ y# _, D4 ?6 sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& C4 \& J  t6 o! W" V! Z
        .leds = da850_evm_tl_leds,
) o: x! m8 \9 }1 b% j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ ^; g! q; j) o2 Z};
* u0 o9 I5 M7 W. F/ N$ F% w: I
) v% P& r& H  v' J5 L& y6 @; Xstatic void led_dev_release(struct device *dev)
. ~4 z; A: e" g% E{
# e* y6 d; s5 |. {  W' W( x};
, H% i, ?7 N0 U1 m: x7 N) C! Z3 v2 k7 Y! i
static struct platform_device da850_evm_tl_leds_device = {
) [% j7 {) L* e$ D6 j% K- |        .name                = "leds-gpio",
4 z0 I. E  G' P5 q* b7 X" A        .id                = 1,
7 g& \9 v. |' A. U2 [* A0 n! X" W        .dev = {( l0 H" U$ E0 H; H
                .platform_data = &da850_evm_tl_leds_pdata,
3 s$ \' s. l* H6 D/ k                .release = led_dev_release,
9 u: h* U$ j- l, p2 d        }0 G6 K- s# H! M4 p/ f
};! J* Y. S. Q; o  l0 q
0 S6 j' `# A. N* Z* [) X9 p
static int __init led_platform_init(void)
/ H: Z% @: p1 c1 j5 q{" l4 O, \4 c  m$ S! R" H, {8 I, h6 P6 J4 E
        int ret;
+ R+ C; P' g% M+ ~( Z5 C#if 0
0 D/ y0 X) T7 B: U  K        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 v/ S' X9 K; D; G$ A        if (ret)
1 s" Z2 ^: H2 m                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* d# K: O# O! n+ c+ N                                "%d\n", ret);2 P; j8 L1 y6 F! E
#endif* U  _+ t8 J& W5 N. j7 [. P* O/ k
        ret = platform_device_register(&da850_evm_tl_leds_device);( w* S: h* A: I6 A% G9 y- Q
        if (ret). o  }) A6 g3 a# ?' k
                pr_warning("Could not register som GPIO expander LEDS");3 V5 [$ U+ J, T
        else
+ v& u. B6 r' Y                printk(KERN_INFO "LED register sucessful!\n");
& i1 ?8 D7 ~$ `/ J' X
0 M7 j8 O# m- t/ q/ h/ b, m        return ret;
0 }. k  D& h. p& t) ]6 m: W}7 J& A! a0 K/ t6 O: R1 A( t- L

' A7 o0 o1 g# @; r& gstatic void __exit led_platform_exit(void)
& c6 y0 g; G8 ]0 E5 n{
9 Z5 A1 h8 i) n* a" J' Y; w4 O        platform_device_unregister(&da850_evm_tl_leds_device);
2 k  X4 j4 O) F/ Y$ l" E4 a. S/ e3 M' m9 P& o# Y9 T- f& U. f
        printk(KERN_INFO "LED unregister!\n");( N9 `5 c1 d2 V! Y  I8 s3 `
}
: V! S* Q' @. V7 m3 E/ R5 F+ `& s2 ]# g$ c+ ]9 O7 m3 H2 i$ m
module_init(led_platform_init);7 z" @* x, t$ k. r" e/ @
module_exit(led_platform_exit);
1 H4 g' y1 u; ?3 M- i6 c! O7 h6 G; i0 d" {1 n; o- Z4 i" O
MODULE_DESCRIPTION("Led platform driver");2 S% b5 q& q; E1 w( O9 W
MODULE_AUTHOR("Tronlong");: u  j5 {/ M: Q9 O2 p) T. U0 [
MODULE_LICENSE("GPL");
$ _) m$ M+ Q1 {
9 |9 ]% A, C6 N6 m! k3 W9 Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 02:48 , Processed in 0.045923 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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