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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ ^; d9 X) Z! J( s3 B#include <linux/init.h>
1 h' w6 v% h: J( S! _7 o" E& I) v#include <linux/module.h>7 A3 K6 U5 s6 E9 ~; J4 m
#include <linux/kernel.h>6 l: D, c+ n& e3 z% T# \  ?
#include <linux/types.h>, {2 M0 C4 N- k( P3 v
#include <linux/gpio.h>
1 {1 W9 v5 B8 Z8 S#include <linux/leds.h>
4 H3 t+ Q# N& l  E4 O! R! u' c#include <linux/platform_device.h>
- O  H# y# g3 ?% Q3 [, x* w9 E% `9 x4 Y; n  m) F
#include <asm/mach-types.h>+ H2 I/ F1 g" x4 X
#include <asm/mach/arch.h>1 @* J" \2 l- v! q, F; S5 l
#include <mach/da8xx.h>( P0 ]& s9 h  U
#include <mach/mux.h>5 f, {0 p7 |: N9 d6 N/ s# W
" M, v# v5 k9 m' ~$ f9 Q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' C, N6 h: F  i8 c9 u4 C#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) v+ v: E. ]. W: p; b4 h6 L+ W. W#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 r$ v9 n6 z6 h3 o' f  Z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! Y8 r4 Z" P0 d# D  o; C- S' H  K
' L- F% a4 ?2 ?, o) c, f( r5 h/* assign the tl som board LED-GPIOs*/
* n9 @3 f7 p# M4 |3 P( m% astatic const short da850_evm_tl_user_led_pins[] = {
! y2 q4 @" a! g        /* These pins are definition at <mach/mux.h> file */8 e, a9 m2 K" [' s6 v  x8 z3 K
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,0 F% a' X( N! u- @
        -19 [" C0 y5 \5 c2 b/ H, N* S
};
4 B6 e2 k, a: a6 A$ b" i/ O
, x2 ]9 X: m6 W5 |9 ~static struct gpio_led da850_evm_tl_leds[] = {
; v1 d3 p" L' d7 c# o& \, m        {
8 {  d8 P( X' x7 G; a& l% o% G                .active_low = 0,! d! O6 m2 C; _4 W" c  s+ f* @
                .gpio = DA850_USER_LED0,
& a. h; M3 e- W( \( F                .name = "user_led0",
) o8 @6 ^3 X0 K. ^2 z: b0 h+ p                .default_trigger = "default-on",2 y- N0 U0 V* |1 @0 A/ [; y/ J! G
        },' J9 d* K8 ?- m$ @
        {
9 D9 B8 l/ `; h                .active_low = 0,
/ u* {, e: l1 e# t  z$ L                .gpio = DA850_USER_LED1,
8 ^0 O* ~; Q5 ~# A1 T$ F                .name = "user_led1",% y: m" p' z- p& K3 ^
                .default_trigger = "default-on",
! _0 \5 `5 s1 l  ?7 N) [        },
- N4 N& q8 a% Z4 B1 |$ z3 \        {7 x0 g) r1 |( b! K/ f
                .active_low = 0,# U; |% r. W0 x) B+ ?
                .gpio = DA850_USER_LED2,
* K" ]/ a/ p! |* y8 P% ]                .name = "user_led2",9 A% ?9 d2 x8 i$ v
                .default_trigger = "default-on",$ E( H3 b$ ~$ j! v: k( d4 f9 Z! ~0 H$ R
        },
5 B8 R$ o* N# F( p# b& f, b        {
. Y( ~" U7 f$ z8 [4 c" d& P/ f9 f                .active_low = 0,6 b& C( K9 Z7 T$ I. `
                .gpio = DA850_USER_LED3,0 y0 C) {. z) N) ~, t$ G
                .name = "user_led3",
* H" f* L; ]: R/ S. q2 M! q0 h7 n                .default_trigger = "default-on",) `9 X6 V: K) u/ p3 j, m. q3 T
        },
" Y. h' S+ J( {8 e# I};2 D. t; Z# a8 I8 r

6 U, d% p9 g1 v3 Dstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% ]( A" q) X# [/ n, q
        .leds = da850_evm_tl_leds,
$ |) V% r' W  q3 g% s$ E        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) P: M1 x0 W/ F};, i  p- u5 R* Z* Q; n
# j4 k+ U# ]* A6 G* Z
static void led_dev_release(struct device *dev)$ E( w- S+ I: k$ \, V7 v) y" Z* ^
{; f* A, Y" M7 ~
};: Q+ J4 d! s7 }, p- ^8 P0 w

3 P" Y6 I! e) t) nstatic struct platform_device da850_evm_tl_leds_device = {& G( A7 f9 S* ^
        .name                = "leds-gpio",
8 q$ u! M% k& x' j, T/ h& @        .id                = 1,
7 n- D0 v8 _( a) t        .dev = {/ x9 c2 b6 H! h/ _& W1 [+ l
                .platform_data = &da850_evm_tl_leds_pdata,6 Y; c; I  b7 I" {, g
                .release = led_dev_release,5 F! C1 S. F  @$ i6 \( h
        }+ V; o8 w# b. ~' e& A
};
: h! |" V. w7 N
, s0 W# P7 p  K9 C- ]( Qstatic int __init led_platform_init(void)
9 O8 l! |5 V) {2 A; M9 G4 {{6 V- k0 @' A  `6 ?! G
        int ret;
+ G: I6 z/ h* m#if 0
$ X8 W) Q2 I, N; R: ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! R- `* J- S2 |* _5 G& X* i/ a6 l
        if (ret)
8 Q2 }$ _- _3 m, O% d                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 a0 D4 i! U% y" y( P
                                "%d\n", ret);
/ W1 D7 \- W  O! e- V; t#endif  v, o" x  p6 |; N
        ret = platform_device_register(&da850_evm_tl_leds_device);
! i: p6 r4 i; s$ E        if (ret)5 m5 s0 ^  A% A1 s/ v" r
                pr_warning("Could not register som GPIO expander LEDS");
4 @; a- H$ V) t* M7 z        else; m. h/ B6 b# [, N7 q! S
                printk(KERN_INFO "LED register sucessful!\n");
% L% L( g7 o. o4 Q1 T+ W8 A! q. E0 B3 [! C) f
        return ret;
! ~1 ]0 m% A  ?3 x& i4 O$ X}
8 b" Q+ D4 F2 V) h  |2 _. _% {, X5 f7 J) p1 M, j: G
static void __exit led_platform_exit(void)
: c( B  R' T, i7 Q" o{2 }4 K' j( |( @# F# l1 Q! W
        platform_device_unregister(&da850_evm_tl_leds_device);
7 z9 c0 R1 @- ]& Z! ^; M7 O+ ?. W! g. T: m; \- D0 C5 `- g/ }
        printk(KERN_INFO "LED unregister!\n");
& m. d+ f! z. N2 ], P}: j% Y; d/ V" G& R8 ]1 p

8 J& D% i7 u2 o3 Bmodule_init(led_platform_init);" ?8 V+ Y/ @5 d9 _4 l% R* I
module_exit(led_platform_exit);: P( H, Y5 Q- }/ |, p0 s' N& t! H
# }. p, W4 x% b7 a/ C' C
MODULE_DESCRIPTION("Led platform driver");
# X: W; b; \  ~0 UMODULE_AUTHOR("Tronlong");/ w5 {- X9 Y* t" u9 v8 i5 [% l, C! `
MODULE_LICENSE("GPL");7 P! R3 L! s, X9 M4 e/ F

8 ]9 |# ?( I. N" q9 o9 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-2 16:00 , Processed in 0.037281 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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