程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- e  j3 J  H; }" C2 ?+ j! ^
#include <linux/init.h>  |: j# i4 u  p
#include <linux/module.h>
* [5 [7 R9 s4 K( G2 q% ]& B#include <linux/kernel.h>: o/ |! L7 n7 f8 ~' t
#include <linux/types.h>
5 p. {) P+ L& X0 W  Q! {' H#include <linux/gpio.h>
% ^4 o! q$ I; r( \0 a/ k! R#include <linux/leds.h>- l1 [2 P" q& y  y& k
#include <linux/platform_device.h>4 l; l& P. c3 P. I5 ?

0 R" I6 B( S$ i* S#include <asm/mach-types.h>
7 v# f- o1 T4 F. M; j5 M#include <asm/mach/arch.h>7 ], }5 I" J) J. m7 L
#include <mach/da8xx.h>; u' {: H3 ?" a" ~+ j: E& u# t
#include <mach/mux.h>2 M: r& t' z4 K" |
8 Z0 ]. B/ A% j' s; T
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  S/ V, V$ Y- P7 {) C#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 p; c4 p! y6 U  n$ o$ G#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: J- y9 \+ l0 S% C) B  E! N  h#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% K- ?5 m: w7 {
9 q$ {% G0 Z. Z( {/ a/* assign the tl som board LED-GPIOs*/9 T# @; o3 K  ~, ~1 \4 \, b
static const short da850_evm_tl_user_led_pins[] = {* M" |3 m! S& [# k$ }+ L! T) |1 r
        /* These pins are definition at <mach/mux.h> file */
. U9 {9 c! e) C  {3 i        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% L" ^/ h+ F/ E2 a3 b% K
        -1
8 D5 r/ F5 J* z% }- N+ }5 S};
" }( n  U5 i1 e* S: a
& W% d; `4 U' X9 T- k/ n% Astatic struct gpio_led da850_evm_tl_leds[] = {
( S0 @+ R# \# p5 D" o        {2 |( `" P* f9 r; e9 U0 h, L- r4 `1 v
                .active_low = 0,, b3 \1 q8 w/ p- ?
                .gpio = DA850_USER_LED0,
# d$ d& c, a  N                .name = "user_led0",, I2 Z9 d6 F5 Z, c3 E0 _7 h; I
                .default_trigger = "default-on",
! u7 B: s8 {' D1 E. h- G3 i3 J$ G        },! C0 J+ x& ]6 P
        {* v1 j2 U: r& m. u# J8 h
                .active_low = 0,% c/ S; H  l: Q  m# W, \
                .gpio = DA850_USER_LED1,  N. Z+ y1 z7 O% G; \2 L+ `1 L
                .name = "user_led1",
# R2 _1 R6 u3 U                .default_trigger = "default-on",
' _3 @2 s# j" Q  B0 b        },
2 s3 G+ B$ K5 G6 y. c9 m        {% I& l3 J2 S# @9 \; N, `
                .active_low = 0,
1 P, l7 e0 P/ H/ A& k, J                .gpio = DA850_USER_LED2,, P* P" A- g5 s  _1 x
                .name = "user_led2",. L/ v5 O8 Q' y& b2 y; ^
                .default_trigger = "default-on",
  q% v' G/ v( y% I4 t/ ~        },
( j! H) w* `) r, C) S1 @" J        {
1 y% M0 @3 ?6 v' ~2 {  Q* Y                .active_low = 0,
) Y6 m  g' I5 A  T                .gpio = DA850_USER_LED3,, }- p. }. C9 y4 ]- }- K$ V
                .name = "user_led3",- y7 G8 p7 r( @2 g* M
                .default_trigger = "default-on",
; Y6 z* ~1 h% i9 T% ?( {        },
: A3 Q, ?8 @8 Q% B};: R- Z# K, Z* g  k

! q  Y' `% P/ _+ hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! k( B4 Q3 i9 J/ b: Y
        .leds = da850_evm_tl_leds,$ W# Y1 V- w; \$ P) |2 R$ c
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) w0 [7 ^7 \! Z8 {
};
/ v5 ^# l6 a7 |$ s
' E) a: E% \$ f& Zstatic void led_dev_release(struct device *dev)0 t9 B/ \: r  M9 s6 K6 p# v9 B
{
4 b; D9 l2 J5 q% a2 X; }1 X};2 E( j$ ^, {: v* Z" j* U+ ?$ M3 @) m
% P* h% J$ q6 m5 X' _- b) R
static struct platform_device da850_evm_tl_leds_device = {
! T' S- D) F* W; V; ]1 K        .name                = "leds-gpio",
0 G1 X, u/ F% V* F1 w        .id                = 1,
4 b2 a9 e# K+ N& q; e' i* W' d% Q        .dev = {/ g3 w, i& {! d/ D
                .platform_data = &da850_evm_tl_leds_pdata,
1 h) O3 }3 @/ [. \  [" _2 R9 m5 K                .release = led_dev_release,
; O4 ^% v2 T2 B  F/ }) B9 X1 c        }
& X( u/ e7 u; Y# K) R$ F* _" I};
0 y7 z) ^3 a; ?: i
' C# s' ~) W/ |static int __init led_platform_init(void)
8 n4 P* {& n, f4 @0 Q4 Q{1 F3 ?6 A8 H( b% H
        int ret;
# i8 Q/ d9 y/ `7 K' |& r#if 0: k' X' X. r5 v4 T% Q+ ?7 p  Z, X% y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: p+ N3 O0 ^0 i6 j
        if (ret)
1 J8 l+ N: j8 s                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; l0 b" v1 J9 [6 O' v                                "%d\n", ret);
8 d5 ^- J4 O  C#endif
: p- m1 j" p7 c        ret = platform_device_register(&da850_evm_tl_leds_device);: P5 C8 C3 ?& x
        if (ret), O, X9 n" |4 X1 n) z) x
                pr_warning("Could not register som GPIO expander LEDS");' D4 U  F! m: z. N1 i
        else
0 u, C4 J9 `4 T! y0 H                printk(KERN_INFO "LED register sucessful!\n");
* ^3 Z$ u6 U+ t- u
; U$ g& }% x. ]/ b% U        return ret;& R% a- w* b  J) R
}3 E/ `. O  W/ f2 v7 \. ^' U
/ A! K* K# R3 x9 k! P9 l
static void __exit led_platform_exit(void)0 o9 U, x( U7 R5 j8 h: T
{4 Z; D1 u4 y; a3 i8 k- R- x$ s
        platform_device_unregister(&da850_evm_tl_leds_device);
  ~4 g1 ]$ ]% s8 t( Z2 Q" K/ m  H
        printk(KERN_INFO "LED unregister!\n");! {9 a6 d& Y! }
}
/ ^7 `1 B' V, [. N! {0 c
; R4 ?' l* j, s9 N2 N" lmodule_init(led_platform_init);
5 I( q$ D( h% a5 n% D2 bmodule_exit(led_platform_exit);
) G" l1 ?4 i4 H4 w, M% B+ h- M7 ?+ T- f
MODULE_DESCRIPTION("Led platform driver");
$ ~( h5 d9 k- dMODULE_AUTHOR("Tronlong");" ~" C5 [: ?( Q4 o
MODULE_LICENSE("GPL");$ l( O& P/ [# i# }- h" U* ^; o' [' P' q

% o1 k6 s! n. @' M, i$ s, Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-27 07:23 , Processed in 0.036561 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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