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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 T  \7 B. Z- t( b- T8 p# m
#include <linux/init.h>
. ?6 L+ \  G" v* _* I2 z# S#include <linux/module.h>
8 P+ g1 h$ R* G# P7 J#include <linux/kernel.h>
! K/ |8 y, v' j. B( H#include <linux/types.h>
/ \3 l9 B( H9 J2 L#include <linux/gpio.h>+ [- |, ^; M6 n+ |6 `; g# R$ W# _
#include <linux/leds.h>
0 |$ [( V' k2 @/ V#include <linux/platform_device.h>
4 }6 h9 f3 G' i# ?2 t+ F/ m3 V& h7 @5 _
; n3 `( N. I: x, G$ P" r1 \8 q#include <asm/mach-types.h>
2 M) w- G& ^8 g9 ~5 H4 S* x" o#include <asm/mach/arch.h>, c# @' ^6 t2 F
#include <mach/da8xx.h>
5 {: G$ J5 h& }#include <mach/mux.h>, l' @3 R5 G# ~' w1 {
7 Y( C+ e) M- H
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ d; A. t& Z% F5 V+ g6 A#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, P5 f. s' q( \! ~) y" e9 F: q) j#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 d; }$ r( ~& m5 J
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 A  f/ Y* f0 w6 ~6 z+ C3 f: ~; A+ H( w( L* _+ P
/* assign the tl som board LED-GPIOs*/* t6 `, m# Y6 R3 G
static const short da850_evm_tl_user_led_pins[] = {
0 N7 t1 y' _$ Q* K, r* d        /* These pins are definition at <mach/mux.h> file */% ?7 i- C- x/ r! H. G
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, A* \* [6 ]4 o2 k  o. T
        -19 ^4 C7 f9 G( e1 @' V
};: K3 \) k- U) ~4 p9 l* Y

3 b" ?# g) w: g# A4 X5 ]) Z+ ?static struct gpio_led da850_evm_tl_leds[] = {
9 U9 n" y' |- i- y7 A1 o        {
" j' t6 R, |& E: m7 p                .active_low = 0,
" e: j4 O3 t+ z, I+ i! S9 E3 r                .gpio = DA850_USER_LED0,
! F% B& _! Q8 d) C: Y                .name = "user_led0",% H: u" D& o6 O. Y  ^7 w; V) V0 [
                .default_trigger = "default-on",+ ~3 v1 e9 Y9 F4 f# X0 I, f
        },' T3 I4 D) g6 y# @/ L4 z
        {
8 I/ h  G4 ^2 J! q7 }                .active_low = 0,
7 H" h" C8 w1 M# I& |) W8 O                .gpio = DA850_USER_LED1,0 X* K1 y: ?3 u! @% C7 B
                .name = "user_led1",( p/ i# p0 v. x3 P" o( o
                .default_trigger = "default-on",3 F% e) D- \& b
        },; U1 d# z  p/ b8 u
        {
% j+ t' h+ P$ J; {7 R                .active_low = 0,
- |% z% i  s# N                .gpio = DA850_USER_LED2,: G0 ]% A- n. T7 L% M3 Q0 G2 j+ h
                .name = "user_led2",2 e( E9 @; M# X$ d$ v# O
                .default_trigger = "default-on",; }8 w1 a& F5 w
        },1 l1 X. Y  w0 ~
        {
/ g1 P, \  P5 }4 {                .active_low = 0,2 P1 [" O' p/ z, B
                .gpio = DA850_USER_LED3,$ w7 P9 p: i5 D$ X1 N. v
                .name = "user_led3",
! o0 E# a6 z1 x* |+ E                .default_trigger = "default-on",
/ D0 @, g& [4 s) ]        },0 W0 }( q0 ?6 I
};
2 C) L" `4 c& s3 h5 V! r% ~
) u% r/ I. z7 |) istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ Q4 l5 {9 `, U( A9 E8 l
        .leds = da850_evm_tl_leds,
. |5 B, U2 j( n' t. _" F* X        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 w+ b2 K) ]% K" M
};* D, Q$ o' m) t* u3 h! I# t* m
5 O* _. K$ l/ Z! n9 b
static void led_dev_release(struct device *dev), O7 }; G5 ~) t$ r2 @4 n
{
8 }* I! l! k' j5 m. |};
- k& f  B! \* K) |9 k+ H+ P; D. f0 {' Y- C
static struct platform_device da850_evm_tl_leds_device = {
4 H$ A5 S$ @+ @3 z        .name                = "leds-gpio",2 x% q; ?  Q9 ~/ N6 j5 {
        .id                = 1,
: I: K5 L! D0 v. Z5 E        .dev = {
. ?& v5 i5 D; b" u7 Y  i                .platform_data = &da850_evm_tl_leds_pdata,
" s. I- U6 `& V3 X+ Q& x                .release = led_dev_release,
7 f, k7 h9 @4 \* K( p        }
' ~0 h/ \1 K$ Q4 k0 l& e+ J};: p. ]/ W; T# `% n) p

! j9 G* R( w- Jstatic int __init led_platform_init(void)  j% i* m# A; V) M% Q
{
* ^% b6 a2 t* R        int ret;
3 s6 d) i9 b# i# |6 d. S#if 0. T) @' \+ F' `
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ Z) L0 E. |; d
        if (ret)
. p- d+ w+ D' }6 c0 c) J8 D                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 a- n# y5 B. f6 Y- |7 H, F                                "%d\n", ret);) V0 `, S( {: Q- s
#endif- r, a0 v" ~$ z: [
        ret = platform_device_register(&da850_evm_tl_leds_device);6 f( A) I& p! e' }9 n: x
        if (ret)
+ V  O! M$ o/ i2 A" l( Z$ h                pr_warning("Could not register som GPIO expander LEDS");( R, G- F  B0 d; @" V
        else" y2 j' K; H8 v3 ~
                printk(KERN_INFO "LED register sucessful!\n");
( h7 l3 ?5 X5 T; p4 }3 Z
# X; e" Y, n% s  H4 _        return ret;
8 ]2 V" U1 S9 {/ \& |) P; P}' `9 f& i% H& w! J4 N" o! I. ^
) H( M8 w5 p" S, y7 R: H* n
static void __exit led_platform_exit(void)* D9 `+ \: F- h8 F
{
" i* b; W1 ~2 O$ o        platform_device_unregister(&da850_evm_tl_leds_device);
1 R  L/ ]  \& I0 k$ _4 @6 @$ f% |4 o9 i9 J* d# v
        printk(KERN_INFO "LED unregister!\n");& `9 V4 ]3 {! R
}  H; `9 E- D3 `! H; i/ B$ G
- E/ g: q# K' J0 G) y8 t" d8 X) V
module_init(led_platform_init);
1 c7 C" H+ X( B0 d! Cmodule_exit(led_platform_exit);
: R3 |3 Q9 f1 f1 q0 F7 q0 [0 O% j; F- E) v2 {) T7 R. e! g
MODULE_DESCRIPTION("Led platform driver");
1 G; |+ x# P* }+ L; zMODULE_AUTHOR("Tronlong");
) k$ [- r' w- XMODULE_LICENSE("GPL");5 H% k) \2 g0 \3 L6 y3 A; o/ r  C% g# O
7 V. Q/ p7 T" m  A% P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-23 23:59 , Processed in 0.037780 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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