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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 n& Y0 |7 g3 ^  A' Y5 x- v
#include <linux/init.h>! n# r) \4 F$ y2 S( e
#include <linux/module.h>
7 \) s; x/ }/ @1 U2 B1 s#include <linux/kernel.h>
+ e7 _& ~: J$ G4 ~* |' j#include <linux/types.h>
# G3 x; l, O+ e5 m  O#include <linux/gpio.h>" G) d3 @7 }2 Z* Q* s$ B
#include <linux/leds.h>
7 O- b2 T% o8 }$ Y+ @) u  @: _#include <linux/platform_device.h>3 @- f9 O" R7 M/ d/ I$ l( ^
9 M2 A# u0 h7 ^6 s
#include <asm/mach-types.h>
/ m' T! L: S* |  c" {#include <asm/mach/arch.h>* g% \' V: ]9 z3 d( Y
#include <mach/da8xx.h>
  D0 m. F# d. b$ z* |3 z/ D( z#include <mach/mux.h>1 ~2 @3 W$ j8 j3 `; e

2 m& P7 f# K! @+ e- m#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 L7 ^7 D+ r  D, g3 B#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- Z5 {: s1 Y8 y5 v! R  A7 ]
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 c9 ?! I& \% w) H* T% i8 g4 U#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 c6 V' [$ r- F2 K9 m2 b* a/ |
8 a. n$ f. R7 Q* H# \0 m) h+ h/* assign the tl som board LED-GPIOs*/
3 o" j4 X0 P2 X2 _6 i$ Estatic const short da850_evm_tl_user_led_pins[] = {6 c5 {: t6 j; v" E
        /* These pins are definition at <mach/mux.h> file */
: v$ L+ Y. ]5 C- _# X/ U2 g        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! U# X' z0 _' w4 B" `
        -1
& h& W4 i* X: p, E( V7 m1 X" `};+ J7 Y/ t5 ]1 ?; U

" c, x6 n, ~' \7 Pstatic struct gpio_led da850_evm_tl_leds[] = {2 f6 E/ ^, R% p" y3 f
        {( I# E# |- [8 D) Q6 V; m
                .active_low = 0,; H- V2 W, |4 `/ G, N% l
                .gpio = DA850_USER_LED0,$ B3 ?* e1 x4 E$ t( C- \
                .name = "user_led0",. h" [# q6 L; ?6 g3 L, y( H
                .default_trigger = "default-on",  Y* K! U% d- J4 [* Z
        },
6 y) _- y2 }. U% a# R. _1 t        {1 A4 J+ `) x8 G, T1 i/ q
                .active_low = 0,
) D1 s9 S& V; J! n2 I                .gpio = DA850_USER_LED1,
( X) B9 J9 G7 p$ }6 K                .name = "user_led1",
# O. u. b; F* L8 J( }0 ?                .default_trigger = "default-on",- P/ @' |% ~% E, U# l
        },, t- x& {; w' G3 I* l1 _9 X
        {
; a" K2 L4 |5 ?, ^5 Z8 s! |                .active_low = 0,
% Y$ W  d& g4 b* V                .gpio = DA850_USER_LED2,
, ~" g5 z# B# T& i1 i8 F                .name = "user_led2",7 L2 k7 Q$ s9 b% T7 C0 X2 u
                .default_trigger = "default-on",
  @3 ^$ P; P6 m        },7 [! L/ Y$ h4 U/ C6 I
        {
% D, E+ ~: c$ Q3 f; _0 Q* S                .active_low = 0,
! |. y- Y* M* O# j4 [: Q. z. D                .gpio = DA850_USER_LED3,0 a, N/ c  c. m" r7 l
                .name = "user_led3",
- ?: |5 M% O7 e! R: l$ Y' M                .default_trigger = "default-on",) h5 [$ t  q6 L( G. X( K
        },
/ R! G3 E* ?2 L2 n};$ C: u6 `7 Z: F+ `/ f5 `' e
+ W6 v4 k' |, C0 Q* c, n: r
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' t+ ~& j; l4 W9 a
        .leds = da850_evm_tl_leds,# ]1 |, F, Y6 I7 F
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% {& x( F& A1 Q( L1 i1 l/ j
};% B) S" a2 u, e7 \
) m" c( g. K5 F  w5 J9 p1 N7 {
static void led_dev_release(struct device *dev)
3 H/ l1 |; e  S3 S) `# z{
7 ]4 T2 P% I5 U9 ~- j1 h" `6 y) |};. @1 J! n' N/ r8 A% H, D
2 a  f! [. b  Y3 a) O) B5 a' d" W
static struct platform_device da850_evm_tl_leds_device = {
- q" z/ Y4 J& Z% }7 Q" T        .name                = "leds-gpio",- s& a% G9 q% b$ d
        .id                = 1,
: R* ~5 Z7 c6 i  j2 {* V! _        .dev = {& p! z( F) H3 U# J* C# C7 _
                .platform_data = &da850_evm_tl_leds_pdata,
! P$ s! e  C) j; I                .release = led_dev_release,/ b8 b$ o/ `& ~$ h
        }! x- G! C0 ?5 M, `
};
1 C" h* f* h/ a* d5 d. [7 G+ }, j0 L) b
static int __init led_platform_init(void)4 C1 y/ E+ d% B. c( S
{
( s; |/ g' s4 d. E        int ret;+ Y# s, M" s6 z
#if 0! Y, e( P+ }: U! H& @8 `
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 Y) {8 }. V8 r# A
        if (ret)0 F& Q: `/ h( w* t0 B$ w6 k# I
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ [) [0 }- V6 _! N* u% Y
                                "%d\n", ret);: Z2 k5 M3 [+ G" v
#endif. q+ ?  V* u- o
        ret = platform_device_register(&da850_evm_tl_leds_device);
; q& T3 Y' u0 h4 H: R  {) o% |        if (ret)  a# k. h/ V" s; ]
                pr_warning("Could not register som GPIO expander LEDS");8 g3 x' g6 H1 y; r$ h
        else% e2 w& C% [7 T/ n. b
                printk(KERN_INFO "LED register sucessful!\n");: d* P- q) z# I, h0 N! B8 |

, K( y9 ]3 U5 |0 V        return ret;! Q0 E! J! A* i( p' m! B
}
1 ~" E& `+ F' m3 J6 ~
" E: b* i* O: S7 [static void __exit led_platform_exit(void)4 y0 Y8 y# A' s( I
{6 i) U4 q7 Z# n4 l# j" e4 f
        platform_device_unregister(&da850_evm_tl_leds_device);
4 H6 D" D/ \; o  F5 t3 G9 O5 }' ], ~- P5 Y% p- `" Q* M! |$ p
        printk(KERN_INFO "LED unregister!\n");* u; U4 K% N2 D
}
  s9 R" L4 x5 e1 v9 L' G4 v
( Y8 E# G: T/ v& P9 Cmodule_init(led_platform_init);, W; f8 y7 g  W  C  ]# B2 n
module_exit(led_platform_exit);9 x% m! x" L( d5 L" J# |
; q: o6 h. W/ z
MODULE_DESCRIPTION("Led platform driver");
& ^$ q7 d- w( Y' B3 Z. `$ kMODULE_AUTHOR("Tronlong");
# k; x; ?. K9 lMODULE_LICENSE("GPL");5 g8 y; k! H, F- ~. i

& a- T+ h# T  v$ j8 |4 v$ ]; W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-22 01:40 , Processed in 0.042014 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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