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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' c) J- e7 `1 [* q
#include <linux/init.h>) d* V( K$ P2 M7 X' R% ^
#include <linux/module.h>8 d- x- N: k6 v: V6 P3 Z" J2 U
#include <linux/kernel.h>
  h  |% {( D* ^: ~  F#include <linux/types.h>9 H$ Z( {7 g& m$ Y' z
#include <linux/gpio.h>
1 C) a7 Q$ d1 S5 J- a9 p; k  L( a#include <linux/leds.h>5 y  t0 h3 \- W% p" i
#include <linux/platform_device.h>. c2 _  Q3 @5 c% R  P
6 v! U3 M! K% k  _8 E  |
#include <asm/mach-types.h>6 z* N( r7 l5 \8 s0 W; n+ o
#include <asm/mach/arch.h>
/ ^$ W2 k7 U# L0 S$ C# D- r#include <mach/da8xx.h>
0 S/ u: T0 N% |% Q4 f  S' T* X#include <mach/mux.h>
) _' f% ?$ t. ?
/ N  g9 m' Y8 G: w5 C#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 y2 Z& o/ m4 v3 q# s. j6 i
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# E& |! B8 @5 P) W! S$ \! t#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- ~& ?0 U+ d) b! v
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 \/ ^( r1 G- p, ?3 {
; F" B. B0 @& g) D6 A0 F5 @
/* assign the tl som board LED-GPIOs*/
2 Q( u1 b, A0 A" c& K3 Kstatic const short da850_evm_tl_user_led_pins[] = {6 J2 A4 g4 m, O9 S- I- s
        /* These pins are definition at <mach/mux.h> file */4 U/ D9 G' w: }& E# V) c' v
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 c  F  o) P# Z
        -1
1 [0 C# O8 J4 N4 {7 s# X: q8 f};
, }% \% T$ I. F; R  m- q( Y7 L% s; _- F6 {6 |( Q3 W
static struct gpio_led da850_evm_tl_leds[] = {
7 _" u$ X* O# v) X" X2 D        {
3 f0 J4 f  T8 c8 L3 P2 S9 M' O" U) [                .active_low = 0,: o. P5 q6 ]4 S
                .gpio = DA850_USER_LED0,( \$ @$ j. |) A* Z" B
                .name = "user_led0",) d* m& z- M$ z, v! g. t
                .default_trigger = "default-on",3 F2 a- X% q/ p# t
        },' p% S8 o$ n4 f: D( E
        {
7 z; e: a! R2 S                .active_low = 0,
: t# e( ?# b6 ~  b! T  J                .gpio = DA850_USER_LED1,
( ]) z4 J2 h2 @( k5 i                .name = "user_led1",9 z4 a! s" l' A! {8 ]( v8 I  A
                .default_trigger = "default-on",
* d7 h, w& |* Y+ k2 G: l6 A$ v' s        },
- K" i! c2 G  e  E' w* ?2 g/ O        {
: f, d' \. ?! l) y8 x                .active_low = 0,
/ w/ y% ?. P0 [# {9 g$ }) U                .gpio = DA850_USER_LED2,
% A3 M% S5 B( `                .name = "user_led2",5 T" I& a0 x4 Y
                .default_trigger = "default-on",$ j5 z, m) U' l9 k
        },% {/ \+ D4 q: ]  z& |" Q# z: w
        {- p9 x! G! g2 O
                .active_low = 0,
0 h$ x  u; T4 t8 R/ W6 g1 P                .gpio = DA850_USER_LED3,
- m( H& Q- i& U* H                .name = "user_led3",
+ {, d  k, {6 x) C  w1 C/ z                .default_trigger = "default-on",
- r8 v" s5 |' I2 a        },
6 I% J& i5 ^+ E1 g8 i};% l9 e8 T1 i6 n8 P, u* S

$ I+ b1 g8 a# q4 }static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* v8 k6 [2 G9 j9 ^0 m        .leds = da850_evm_tl_leds,% m+ m* `) T) O) L9 V2 i
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% a' @* @( K4 Y8 G
};( L" T" P$ _  X" B: r0 X8 H
$ h$ D/ i9 R$ R$ Z6 `* @
static void led_dev_release(struct device *dev)/ O/ a0 F3 S5 \+ F
{
# P* c1 B5 Y- w" i- u1 L# e) a};
: z1 @) b: _  @0 [6 W% p9 C, q% ?5 Q; T# Y0 l6 R3 N2 e3 [
static struct platform_device da850_evm_tl_leds_device = {
2 I* H6 A+ O  V, [& a/ O' S/ w        .name                = "leds-gpio",9 g4 z& x1 |0 _/ W
        .id                = 1,
  j! S7 X4 Q+ f( F4 a4 C        .dev = {
1 S4 ?. ?2 O) a8 c                .platform_data = &da850_evm_tl_leds_pdata,: J4 R+ v! j% b) E
                .release = led_dev_release,7 S3 J5 {! Y) o7 G4 s4 s
        }6 j/ b, r" M6 S* q$ D
};
9 }7 |$ w7 b9 @' q+ Y
" W+ X4 G9 j; c  z! y- D9 @static int __init led_platform_init(void)8 q! N! C" }% b6 T# T+ r
{
  _5 }; g/ `* k& m! @        int ret;& z: f8 f7 W) j2 |9 Z1 `
#if 0# a2 K/ Y) I  l. _) t) }7 j
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 U  {* p/ C! @% H' f
        if (ret)
3 z. F. v2 |  z2 W# r& q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; U, L. s6 N5 q* |" g& k. n3 i8 l, q4 b                                "%d\n", ret);! `8 q  W% x- H" R
#endif) a3 }# K- X/ x# ^4 P
        ret = platform_device_register(&da850_evm_tl_leds_device);& M9 m' P5 c# ]4 i- e# a# o" j
        if (ret)
% ^9 ?6 Y, h3 A$ a0 |+ _$ D( ?) P                pr_warning("Could not register som GPIO expander LEDS");
# h: C0 N  N0 K8 H3 A2 J5 j- f/ W2 V2 ^        else/ m5 P: a5 m4 o/ u1 i
                printk(KERN_INFO "LED register sucessful!\n");* r2 b. w0 x2 j( I
& Z" ?2 S& A7 K4 P
        return ret;
" E; C: @: t  j  [. u6 c# Q}3 |5 c  Z4 C) a  f- _

4 q" q5 ~) Q3 P) {static void __exit led_platform_exit(void)8 h; |0 N1 ~1 k
{7 v8 M* r% T; L; a% @+ d' r
        platform_device_unregister(&da850_evm_tl_leds_device);; n/ F( C1 E& K8 w3 N! B

, g3 h1 b4 l( P0 N6 y# b1 f        printk(KERN_INFO "LED unregister!\n");7 h. ~5 n  q0 J- z$ b$ i4 A7 a( L! ]: n
}; c6 ]! y9 i& z' R0 E' l% d

( v5 w6 y7 b9 _0 i+ o5 amodule_init(led_platform_init);1 B% M' X" s) y9 ~- j
module_exit(led_platform_exit);6 p. }* J2 i5 Z& _0 m4 C: H

0 _( D. y- {8 s- R$ RMODULE_DESCRIPTION("Led platform driver");8 T& A6 u- I, W* g# Z
MODULE_AUTHOR("Tronlong");
# n6 D5 h9 G! ^/ @2 ^# f2 VMODULE_LICENSE("GPL");
* y3 G( e+ Q# m0 s5 s$ ]: u* e  A8 i5 C7 S, z& R2 F" Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-10 07:18 , Processed in 0.036666 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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