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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, C7 F* L: g. i4 D- c7 p
#include <linux/init.h>2 O. I* w; E. m, ?" a5 M0 n# W
#include <linux/module.h>- C" Y* t/ n0 F/ z
#include <linux/kernel.h>$ u( d. z7 E* q
#include <linux/types.h>, M% S1 l  A, ^
#include <linux/gpio.h>
$ S+ R& B8 Q( Q/ E: e! I#include <linux/leds.h>
& p$ a' N' D8 Q1 g3 R( B* _#include <linux/platform_device.h>
# L' ^1 f1 _1 O$ U( g+ [$ \3 e9 `- _7 B  _4 z6 A0 b
#include <asm/mach-types.h>
7 J( ]' }" l" f. G4 k" q1 Z#include <asm/mach/arch.h>
& A  J" X, P2 S! T. ]  C" ]#include <mach/da8xx.h>
7 }* j5 ^" m# v  c* M" s  x! l#include <mach/mux.h>  v& i2 n7 H# E

) k  L: }% v1 Z+ F  {; O$ c0 N#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% T7 a/ a8 K% e1 o3 m
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 j; X- l" U4 q% V! ^0 Y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 B8 _* b" }1 S$ c7 v+ n#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: c/ g2 i" B2 ^4 t  A
9 V* b& c/ t  x/* assign the tl som board LED-GPIOs*/0 s( U2 x4 E! T$ P* W# k1 `
static const short da850_evm_tl_user_led_pins[] = {' k( C4 A1 E4 x1 T8 i7 i6 M
        /* These pins are definition at <mach/mux.h> file */
' X3 K( [" M% L9 c6 K- C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 s" }! z4 E& f' w) J
        -1
' i" Z% ]9 P: k};
; X% S1 {; o5 f& t2 x
; g/ B, H! o7 c* A: @static struct gpio_led da850_evm_tl_leds[] = {
8 m% n( F) K' i& n+ _- s3 T        {
$ o8 {: P7 J% d3 }                .active_low = 0,
( Z' r  K, o8 {# U" W; V3 h                .gpio = DA850_USER_LED0,
' I, }0 h1 K( a, L6 y, W- W& L                .name = "user_led0",2 m! R; Z% F1 W1 {' Y
                .default_trigger = "default-on",9 P0 w: ^$ F3 z% }
        },
* t& V6 m6 `& w* O3 S        {
+ b$ g! N$ P, A2 B                .active_low = 0,1 V$ v# C  @6 ], \8 o- I- G3 B
                .gpio = DA850_USER_LED1,
5 `  n* ^7 H3 x8 V; D, J                .name = "user_led1",
  O- @* k2 r  D( f1 Q" h" b                .default_trigger = "default-on",
% T6 ?9 }" ]0 ~5 A! N        },
" w% [+ w0 Q; U$ B) X" \* X& U        {7 ?; o' L4 [7 s; F  S' p* a2 o
                .active_low = 0,* W$ u1 Y  r+ f$ e6 s  f
                .gpio = DA850_USER_LED2,
! W  j( K+ z, A) m                .name = "user_led2",
/ |% i  @1 L. a0 ?% G                .default_trigger = "default-on",6 |3 o; Z8 v3 F7 B
        },
0 S5 @6 k$ y7 o3 M1 f% o! U* s        {$ _0 ?& `2 L& ~% J. N, c2 ]
                .active_low = 0,
! `% n" S; u7 I. t. M' P                .gpio = DA850_USER_LED3,0 O, K( z8 [6 w+ E4 X8 h4 T
                .name = "user_led3",
6 s/ U8 a% b, j# j) v1 K                .default_trigger = "default-on",
" k% o" P: c' g0 Q% g  u        },; q% W- H' n- {; _# {
};
, z6 t2 d, z' A) G% o. k& m, G% A2 z/ i4 [3 }( G' T9 r9 n
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: f% ]+ o  u) F" \! V. j        .leds = da850_evm_tl_leds,
: q# F! S" K) p: [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, X0 o7 S6 w9 m" M' n: E5 |};
3 U, @* t9 j) o; L  z. b- W  S1 j  J; K
static void led_dev_release(struct device *dev)
: M, }& S, z7 {; m4 r# s{
+ y$ q0 m: E4 H0 Q$ K6 x3 N};
1 f7 i* o9 V7 X* w+ \* x$ \
2 p# J/ ?) n  x  F: Q/ L, Tstatic struct platform_device da850_evm_tl_leds_device = {
8 x( d5 S6 {- m  X        .name                = "leds-gpio",3 m- q6 O' I5 J
        .id                = 1,/ d0 E, s+ f, A
        .dev = {
$ a' Z1 M/ U/ t# B                .platform_data = &da850_evm_tl_leds_pdata,/ H& p! i$ S( m
                .release = led_dev_release,0 O- M! g5 Z9 L4 o
        }
" M" r0 s) K( ]% c7 @/ j6 H};7 \$ p, n* ~5 I  N
3 v% S6 d8 F# U, `
static int __init led_platform_init(void)5 ]/ A8 v8 ^" b
{; A$ j& L- I5 r7 b- ]
        int ret;+ J. [* {0 r9 _/ }5 g" E1 J
#if 08 z0 |* d+ K: d: L: M! R/ Y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 m9 _; }3 H1 x5 x, A: A* D        if (ret)
4 i+ ?7 @8 q0 J                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 @( z0 |8 \3 g2 x1 ]
                                "%d\n", ret);9 e6 w, w  o% e/ e5 H2 V2 y- b
#endif
: v# l1 `' ?( _0 w% D        ret = platform_device_register(&da850_evm_tl_leds_device);
$ h2 |% R" a) f9 r7 [7 s- ^        if (ret)
5 r5 N: t5 o: L: T' f                pr_warning("Could not register som GPIO expander LEDS");
" _$ l' l3 h8 ?& N8 Q3 w! j        else
5 C6 C4 v" n+ S: u+ |) @5 P' b                printk(KERN_INFO "LED register sucessful!\n");, }7 C% N, S, I0 Z
4 k3 v; X+ i7 [
        return ret;" X4 f7 F/ J+ U9 Y
}
7 x5 [9 o8 J3 h+ ], Q: ?4 C7 z/ K5 g+ x3 b1 L& O  l$ n& c
static void __exit led_platform_exit(void)# x  z+ n; J* ]% `* \
{
$ u4 c  a3 s6 u0 k+ p( }  L$ H2 e        platform_device_unregister(&da850_evm_tl_leds_device);
) ?3 K+ w; @. C. T3 Y9 ?5 ]! `2 n! J4 W
        printk(KERN_INFO "LED unregister!\n");
- \: L  Q1 l$ U6 I+ r}1 q. y/ P# V4 w
2 }+ ~) z/ E! c1 d* _; O: z1 H# `
module_init(led_platform_init);0 K* ]! n2 \& ^8 j  O
module_exit(led_platform_exit);
; t' F; }8 `- ?, N9 p
$ I+ w' B5 S" e  G& ^MODULE_DESCRIPTION("Led platform driver");
- T, f# }  F/ \: x- g( k- Y) lMODULE_AUTHOR("Tronlong");2 D3 B6 a) y* v+ ^' K' |9 H  R% h/ e/ p
MODULE_LICENSE("GPL");
) }6 e, K' X( F+ O
+ x5 f& j/ F8 f. s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-22 20:34 , Processed in 0.033758 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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