程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 ?* z/ ~& W& f6 T2 O; g#include <linux/init.h>: v8 X( a5 q. V* ]4 f" i
#include <linux/module.h>
4 G, U# F7 D, S# @$ t/ |! _" ~#include <linux/kernel.h>
0 \7 x( P6 h/ G# R4 F* T# I# Z#include <linux/types.h>
- v+ D, A8 T0 {' C$ p#include <linux/gpio.h>0 K' t- t5 h, y8 A: }- q
#include <linux/leds.h>8 a7 N' g  I2 v7 M1 ?8 M$ V
#include <linux/platform_device.h>$ l) {% _* G6 \1 a3 B6 A4 d

( c! U. c  \! _. Q- u#include <asm/mach-types.h>
% S* }) O( p) C" K: H/ i+ h$ ]+ i#include <asm/mach/arch.h>
  c3 ?0 F+ l$ S9 L4 y# X# R#include <mach/da8xx.h>* h/ \* A4 ~: ~$ y7 g, ]
#include <mach/mux.h>% ?" V' E' a. X/ x

3 {/ E" T6 a! P+ r) T+ ]#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  e4 i, s5 x# i1 s" {+ }0 J#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 ~; C" r6 Q$ d/ g5 e1 W2 k
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 N$ m+ \; Q1 K2 i. a#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* f* d0 w1 G& }6 ?& ~6 t8 O6 g
$ |9 P0 Z6 [0 m: r, ~1 f9 X# j, N) T/ c
/* assign the tl som board LED-GPIOs*/
$ ?, `9 Q( U% Kstatic const short da850_evm_tl_user_led_pins[] = {1 N' A5 R4 u" R
        /* These pins are definition at <mach/mux.h> file */6 z9 P. v% M- Y; Z5 R: j: f
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; n  f8 R% l' V* ?9 ^
        -1
5 u2 Q0 s2 J* G$ o};  Y1 K/ U; E3 c( m2 V
0 @7 Z$ U  @1 V5 l3 A+ b# ]2 g
static struct gpio_led da850_evm_tl_leds[] = {0 r! d3 K( B0 E; d$ m- z% L
        {' s1 E9 M2 I& E" @9 j7 K3 Y
                .active_low = 0,
3 c0 d/ \9 [3 `6 _/ J                .gpio = DA850_USER_LED0,9 y/ n# W% U( c- ^' o7 a
                .name = "user_led0",8 f$ [% [) k+ B9 c
                .default_trigger = "default-on",
; K( z7 C, H, W% }: c        },: s, u1 R/ D3 G5 j
        {5 o# [3 F, @, |0 u
                .active_low = 0,) ], k8 R0 X; B
                .gpio = DA850_USER_LED1,* ?3 Y+ S/ k; b) ]1 k0 M0 E
                .name = "user_led1",4 V* ~! ]1 D9 o) \
                .default_trigger = "default-on",
/ |. r' M% N2 k1 ]+ e5 |* P        },
) l7 I$ [. a6 c- {* U        {% T" S7 `% Q/ `- k* Z3 }4 \' s
                .active_low = 0,& ^! A6 k" J# W% H
                .gpio = DA850_USER_LED2,
; ~1 \2 F- K$ M% W  |                .name = "user_led2",( o. i6 L5 Y' k1 e% q9 t
                .default_trigger = "default-on",: c+ f+ E. @/ ^% f2 Q4 k. A  p
        },
; z' q* e( E" [! U# k' t0 G8 t        {" c5 @! r$ x0 `
                .active_low = 0,
, J- _3 w6 t2 V# Q2 c6 E. a* `                .gpio = DA850_USER_LED3,$ K- A* p6 Y5 K2 `! v; d  `
                .name = "user_led3",+ Q3 h4 O$ Q1 g1 t, v* R  ?  y
                .default_trigger = "default-on",
, D1 j/ p6 W$ v/ z, Y        },4 n4 o8 Q5 E. ^) x, ?
};
, s# r( K1 s+ \5 Q  x0 ^2 H9 z1 Z
; }- O! e( Y7 X% pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 C) t( O6 h& `        .leds = da850_evm_tl_leds,3 D/ ~0 m4 B7 u0 w
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 \* d0 {2 e3 Z# ?: ]& T, U};  \% T9 z' B/ L' F. _

7 K  n8 G5 E/ U0 W# Ustatic void led_dev_release(struct device *dev)+ a5 n" s) N6 `6 ?0 z& f3 y
{/ g4 O0 w( r) l
};2 G( X% y* V  P, j! [. @$ F

0 ^! S2 g, E" _static struct platform_device da850_evm_tl_leds_device = {
0 ]. c" v: v, N, L, t        .name                = "leds-gpio",
0 K: P6 F' U/ A3 R' d        .id                = 1,
( B9 q: N4 H) ?1 D' Y4 h        .dev = {
1 c! C2 j- p4 h# e                .platform_data = &da850_evm_tl_leds_pdata,
# w- a4 L9 q8 }) s- N4 v( b                .release = led_dev_release,
$ ?' n6 {9 D8 ~        }- O4 |- N7 r  V9 y7 n! _) q8 `
};7 |5 F1 w( D2 v" ?# c; |; E% X
, S! g5 [, I, Z8 Y& a0 ~/ b
static int __init led_platform_init(void)
( X" L6 Y' g8 U; J{
8 d# P) M2 U$ C( b" Q$ C        int ret;
8 X. O' _1 P/ ^$ t#if 03 \2 l# i4 Y$ w$ O
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' A/ \0 c; C. k$ u% I        if (ret)
2 a" @3 r/ P# Y5 m3 t8 `& w. @7 N                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* ~7 c( K7 J' o: p4 H$ k
                                "%d\n", ret);
: d: t# b* ]! ~' L- X& c#endif
: a: r2 v+ A; @! a+ d7 z! u, L! q        ret = platform_device_register(&da850_evm_tl_leds_device);
6 z4 h" J* E9 |( P; \' E0 y, Y' a        if (ret)
+ J" n9 A" V- m/ A) h; X% h' x                pr_warning("Could not register som GPIO expander LEDS");* j) A8 q" E/ j# @
        else1 [) Y; h. U0 U" E* ?3 L- Z
                printk(KERN_INFO "LED register sucessful!\n");2 q/ t& v5 c2 e9 P, p

) F7 ]; w) f0 D* _4 G0 s  w6 z        return ret;
& a. V% G+ o: W& u}9 R3 N! w% k; c7 k1 x9 M6 c/ l9 q
. c; f: _2 W+ \: z6 l, R- G+ Z
static void __exit led_platform_exit(void)
3 a" h3 F7 }3 ?  N0 m3 h{* J, K( B7 Q4 L( E
        platform_device_unregister(&da850_evm_tl_leds_device);
! }$ T0 A9 t. R5 |- S% Y" f$ {, o5 f$ `1 v% U1 S9 P
        printk(KERN_INFO "LED unregister!\n");- ?& b0 J4 X1 Q
}
  K) i. Q$ Q) W0 P
) W; X1 X4 e0 l! v4 l/ T- @module_init(led_platform_init);
) R/ s  f2 J' B# ^module_exit(led_platform_exit);& E% o) ~! L: Z* H# d  @
" I: u! z( B+ V
MODULE_DESCRIPTION("Led platform driver");
% i* K" R1 \# S2 ZMODULE_AUTHOR("Tronlong");& X4 V) O$ B' Y1 q0 a0 q- Z
MODULE_LICENSE("GPL");
. q: h+ a1 S  A8 {+ ]  y; [8 W; v' J( z7 d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-3-3 04:07 , Processed in 0.039509 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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