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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" o7 W- l  [7 m$ S& p
#include <linux/init.h>
3 p6 Y2 V% }' q5 _0 @9 ~& J#include <linux/module.h>
3 z/ t+ I1 t9 X1 W. k& h) k#include <linux/kernel.h>: t7 [- J- e: N: i2 E
#include <linux/types.h>
" \% G7 h: |: C: n$ a2 G! X3 ?#include <linux/gpio.h>
2 C  k; t( Q6 d( F. s1 Q#include <linux/leds.h>  T. [5 ]1 h5 w% K' {, Q
#include <linux/platform_device.h>
" U/ {7 p6 R- F4 _) J  K, T2 F) U" Z- S7 P$ `$ [$ M1 N- V% ]' ]
#include <asm/mach-types.h>
/ o; s' ^/ u: P#include <asm/mach/arch.h>
1 o$ k; x. x; w0 K& O) E4 T#include <mach/da8xx.h>( m8 s0 H! a0 N) F) V8 s/ u
#include <mach/mux.h>: A: A3 ^0 R" ~
+ [2 @5 h8 k, a! h+ ~9 s
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 B! K6 e: D/ d* \, T, M* k#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). f& K4 f9 L  v7 [
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  b( R  s5 n( O  I7 [! }#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). G& m8 K) I# a, {

# _$ m9 z- k! G! z/ s/* assign the tl som board LED-GPIOs*/& q+ P' y, k+ U0 R; t  b( L, W
static const short da850_evm_tl_user_led_pins[] = {
: _" ^' V2 C7 z; L0 l        /* These pins are definition at <mach/mux.h> file */
% L3 C4 \, c: |* E; [        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: I& I/ w* w/ w8 S        -1
' d+ `8 `9 |2 W$ e};, _0 e# @! q- H# Q5 Z& [

2 e9 P- p, l. \; H) L/ w& ~; Wstatic struct gpio_led da850_evm_tl_leds[] = {/ Q6 @- v- }; c
        {
+ t1 W" N1 X9 e3 b4 X7 |                .active_low = 0,
) ]& t) K. j- }* U& ^                .gpio = DA850_USER_LED0,
% h9 U$ ]- O- a0 t6 I                .name = "user_led0",
  u7 ]: l0 r3 V' i* S2 O+ e: m                .default_trigger = "default-on",
, U- y0 a! o1 `& b/ P$ g7 [        },
0 S. [5 B4 Z+ B! B- T5 p) V0 m        {) h6 W" n- \' v) c7 U4 }
                .active_low = 0,9 C% U% D" ?% i" j! [
                .gpio = DA850_USER_LED1,, N, Z9 S0 W3 j
                .name = "user_led1",# |" p2 o; i- O  h6 ~' o, ?
                .default_trigger = "default-on",: S: ?8 O- o; \& W( }
        },
+ v, p% n5 d' U6 w/ U3 w5 \        {2 |3 ^- I% i# K# U
                .active_low = 0,2 Z% j$ D& D6 `8 ]# J
                .gpio = DA850_USER_LED2,1 u: k2 Q1 w4 A- U
                .name = "user_led2",
" }& c) b7 J. R/ Y* m                .default_trigger = "default-on",0 Z: n( Y. \1 t5 [, ^7 v6 c
        },$ s- f/ x3 O+ ]& J6 S
        {
, w5 G9 x+ V, r5 H1 X5 [) W                .active_low = 0,
0 C7 X" Z  C' K$ y" v$ c                .gpio = DA850_USER_LED3,
! T; U# M- Y: ^8 C! p; u6 q. P                .name = "user_led3",
% N' c2 H2 X  l5 c$ X                .default_trigger = "default-on",
; C% s, K+ e/ U3 \8 w        },
" i+ s, [, Z4 t: z* J};
5 J. v2 Z) L* ?& a- I5 x6 }& r$ T0 O/ b! _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 _4 ^* V5 J+ ?& U6 O
        .leds = da850_evm_tl_leds,: Q# y/ y9 G! R9 S
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 q- F, k; y, E$ i8 J) @5 F% [: n
};# ?8 q; r! o  A0 T3 a& w, a
. l! t3 u( D& |
static void led_dev_release(struct device *dev)& _2 @' L- r8 l6 `: R" s
{; Z7 C1 a% M& I9 H; c
};
! ?! p5 c: ^- C+ Q! c8 v3 v" [% Y( [! r/ Y' D
static struct platform_device da850_evm_tl_leds_device = {3 T- H, Q) t+ |- i! v) _: ?
        .name                = "leds-gpio",# @* p' P; Z9 C" q
        .id                = 1,$ l  L. R% n% m! f( p" S" z
        .dev = {
# ]# f/ W- u) F                .platform_data = &da850_evm_tl_leds_pdata,
9 I$ p: |6 _* O" `" Y                .release = led_dev_release,
8 `% \! A' e2 f        }
! s6 z3 z, A* y! n};
: _9 Y! P4 y+ q% x' u2 n$ p2 n! u! }0 E0 k
static int __init led_platform_init(void)6 T- K, |: [# W) U  }
{
  k5 Z: z! Y: o4 i$ F# N        int ret;6 z/ G/ k! M1 c4 u+ @  ?
#if 0) e. T7 t, J# x! H) S% L# {
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' r; l9 ?* Z+ z: c6 F
        if (ret)
) ?( y# z3 ^+ z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 D! B6 w+ D! r$ m' t
                                "%d\n", ret);( O( |2 k4 l' i+ L0 N4 a5 h
#endif
( P" E$ |3 l5 A5 B" Y/ ]* Z2 Z        ret = platform_device_register(&da850_evm_tl_leds_device);
9 Z- x1 F5 L+ ]' ?" K5 R        if (ret)! C" P7 N  x5 N& F( \
                pr_warning("Could not register som GPIO expander LEDS");* q6 z# i! e8 M, u8 q
        else9 v9 T, c8 P" d+ L  A
                printk(KERN_INFO "LED register sucessful!\n");% r  p6 a, Z2 U( P
) x0 ]4 c/ G/ e% N1 M/ _$ W) L
        return ret;( ?% h9 o9 m$ \
}- o3 K' I0 j  S. T; t

3 M6 W. O: ^; P9 s; {static void __exit led_platform_exit(void)
5 e1 H. \' |+ N) l& I{; p2 J, a) F# R$ o8 X/ V
        platform_device_unregister(&da850_evm_tl_leds_device);7 i5 U( m! O7 R

7 K$ s; q5 K/ I% m; }0 b        printk(KERN_INFO "LED unregister!\n");
; e- }) H: h1 e( y! t6 c# F}
0 U4 |0 \$ J% L+ x
6 y3 w  B: O! e: X# T1 P* p+ `module_init(led_platform_init);; p6 m$ p4 z1 ^$ y, y7 J
module_exit(led_platform_exit);( E$ \( h* w4 i* X- ~

: K& R% {/ k) ]8 w+ ]3 @MODULE_DESCRIPTION("Led platform driver");
( N$ e# |# ~0 F# RMODULE_AUTHOR("Tronlong");
) U# @. Z2 K: {; DMODULE_LICENSE("GPL");
0 s* |  ^2 U8 m1 C$ n; `5 J0 p/ g+ v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-7 19:03 , Processed in 0.036096 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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