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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 O. E$ z- D5 g* s7 s5 B
#include <linux/init.h>8 N' u8 L0 Z0 [+ G4 \
#include <linux/module.h>0 I* A5 \9 J9 X* }7 T
#include <linux/kernel.h>8 t- g4 G' V2 x
#include <linux/types.h>
) M/ i( u4 ^0 k: [#include <linux/gpio.h>6 Z. W) t1 ~4 a) {& B+ u& x* o
#include <linux/leds.h>6 D6 x6 S2 X6 |
#include <linux/platform_device.h>; E* L' c6 X' y, U' b! c' S* B

" d$ G5 ^+ j+ O4 x3 E: Q#include <asm/mach-types.h>
. W% X6 C, n3 x0 W, W#include <asm/mach/arch.h>: M: e: ]# p) a- |
#include <mach/da8xx.h>; N2 {  L8 ?! ]! u' j* S, W+ S
#include <mach/mux.h>, e! R, X) X4 u4 J* y" c; p: U# M

" G2 C, k/ {' V8 m! b( W* z% `#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( [' N( A' t& `- y' I#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 ~( S+ ]4 p( d& O$ M  f$ n& j" k9 j
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% s+ H, a- e. M% n, l$ f( p! c
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 i& C! W, v) E/ B$ a  ?& W0 x6 u6 Z9 P3 |9 c
/* assign the tl som board LED-GPIOs*/1 \. F# w" R: ?+ F1 \) I
static const short da850_evm_tl_user_led_pins[] = {! ^0 z5 R3 P, d. S" J4 w# x. Z
        /* These pins are definition at <mach/mux.h> file */- ]) Z5 G1 O$ [5 D4 I
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 S: l* @8 v) {! I
        -1  w3 Q2 K" w9 Q# J7 a0 I
};
2 w" k" G  t' e, Q6 A9 _9 P% V4 |3 A6 Z* B
static struct gpio_led da850_evm_tl_leds[] = {- K3 C; u  b/ Y
        {
" g9 p" i, y5 ?" L, P                .active_low = 0,6 X/ i- [+ G8 H* s, W/ U# }
                .gpio = DA850_USER_LED0,$ F1 W( D7 [9 P  a4 g2 Q& _2 h2 `
                .name = "user_led0",
' u* L7 [* D9 ?$ E1 H                .default_trigger = "default-on",
9 u4 C* }6 ]! [' B        },
  x- ^. V3 [4 U3 a        {2 s1 |' J1 k: i) y' O0 M
                .active_low = 0,7 n& T* q1 W. {6 |3 _& h. c
                .gpio = DA850_USER_LED1,; ~" N& ]. X3 K0 R5 i# \
                .name = "user_led1",  m' F# x' @- Y9 H; Y
                .default_trigger = "default-on",% E/ I4 Q0 R1 k# |
        },# S/ @- L% p1 a* C
        {# V6 ]/ K& l" \/ y6 ]2 W
                .active_low = 0,7 e( n! ?, Q* q- X; v
                .gpio = DA850_USER_LED2,
: Y$ g+ n, |4 m' I; {                .name = "user_led2",6 H) [/ M7 E* o! Q$ o9 n
                .default_trigger = "default-on",# e+ x& y5 n) v( p+ [+ A" G
        },2 c2 u6 q7 K, M9 p
        {2 b$ |- O' l1 r7 n7 v% i3 r. ?
                .active_low = 0,# R/ i" J" ]/ q2 R1 a( M
                .gpio = DA850_USER_LED3,; h2 U  n/ R% d! c5 Z% s6 F  A( M
                .name = "user_led3",! X; _& {4 I- C( }
                .default_trigger = "default-on",% L- w/ p2 ]' ]
        },
3 s8 V/ f9 R; E' [' E};
4 q: i, o6 m0 ^1 O* m
2 S7 i/ \8 @' q7 D* H; `7 A2 a9 Bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 e% \# |& n1 f& O2 B        .leds = da850_evm_tl_leds,
8 m4 _& u/ m, B% @        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 }* r) Q$ t7 |. I/ L
};
5 ^) i1 H8 H/ A! Z- P" n: z
7 W1 V! l) f5 a/ P# `& _$ ]) `static void led_dev_release(struct device *dev)- G; z4 {$ q* a/ \# p
{: D; d$ v9 v2 W2 w
};
* P! p3 j% L2 Z  L2 F" O4 i/ t  @9 F3 y7 N* z) D, m; N
static struct platform_device da850_evm_tl_leds_device = {1 D9 O5 l$ M+ h3 A$ ]3 j
        .name                = "leds-gpio",5 Q1 t0 Z4 v5 h0 K# H
        .id                = 1,
4 @0 l# g' B1 F  f. G$ N% q        .dev = {
8 a3 D& y5 n2 V' y3 [                .platform_data = &da850_evm_tl_leds_pdata,
8 t# M1 r" ~9 O1 M% Z                .release = led_dev_release,
( h- G  Z( O; ]7 _9 a  h. l        }4 R0 Z+ j1 ~& ^
};8 C  n. ?! N! `/ H% Q$ Q
6 [! P1 u0 S8 r- C
static int __init led_platform_init(void)( _3 P, q/ ]: ^/ y2 e" k$ b  w! c
{
1 E( I9 C) J1 j& g        int ret;- H3 i) c2 H: `$ j  Z5 T
#if 0" f3 d8 U# u( s; i& K* @! k. w  C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* V( p7 ]7 Z7 L3 P1 u1 S1 [
        if (ret)! G# h. f4 z" z0 z4 m3 C& i
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ h( {: U# p  X, h                                "%d\n", ret);9 B3 n) S! u" S* I
#endif
; w: O/ f: ~, w; w% r! x  Q  S        ret = platform_device_register(&da850_evm_tl_leds_device);. G6 k$ |* V; i& G
        if (ret)
0 j1 L* a3 B6 [, U; ^1 c  B3 }0 u                pr_warning("Could not register som GPIO expander LEDS");. w# z5 c5 I+ \" n) h$ T6 |; b" Z6 j
        else" T) |9 e6 Q* F* M1 l. {
                printk(KERN_INFO "LED register sucessful!\n");
: p! H; m: @9 F- h3 W) Q
8 j/ S$ |1 e5 F$ a% l        return ret;
, c, {, I+ U) M- |$ D}
+ x; \; i, c+ z% [3 B4 ?$ n6 |7 K& g" w
static void __exit led_platform_exit(void)) u- I; s7 ]1 e2 i& g
{1 v) M* ~8 o$ J% ^1 @
        platform_device_unregister(&da850_evm_tl_leds_device);
8 y) P0 l* w! ]0 y7 q/ P2 @/ w+ S; }! y" v4 T/ R
        printk(KERN_INFO "LED unregister!\n");
, s& k3 U3 V' y5 _}
) B- p1 P* V2 J1 c* i2 k/ a0 B( j
6 g4 j  H$ _0 ]+ T. K0 g2 Fmodule_init(led_platform_init);# s+ a1 e9 Y: Y6 a) `
module_exit(led_platform_exit);
4 z+ W$ u0 s' P7 Y0 E
6 ]' }6 F9 \# V! u' FMODULE_DESCRIPTION("Led platform driver");) l1 b4 M( w) q
MODULE_AUTHOR("Tronlong");2 [  g+ h7 N/ m+ J9 i& U& ?, U
MODULE_LICENSE("GPL");; J$ Y3 b! K/ f% i) x% y

) c" q! r# r1 {7 K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-28 05:18 , Processed in 0.045817 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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