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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' X, K# r) R: [- `$ k$ H# b9 s" i
#include <linux/init.h>
7 f0 G1 j1 R$ I+ Y* d! E#include <linux/module.h>: ?* S- q" T! n. c! s: I
#include <linux/kernel.h>
7 s! g- y: J' e: @% [#include <linux/types.h>. I  q" F- u; m3 ^/ U3 w7 [
#include <linux/gpio.h>) T. g* X9 v/ n" R  ]( e) F' a
#include <linux/leds.h>& a4 P& G) q/ _! @. q  k
#include <linux/platform_device.h>
# z: z7 O3 j0 ?  V- v# E/ G4 G: ^
- X! k; x( }, {7 \( I#include <asm/mach-types.h>3 u) ^- B+ C0 k* ?+ s4 H/ I: R3 K
#include <asm/mach/arch.h>
* r/ S/ r& r9 i/ ?; y% I. ]#include <mach/da8xx.h>
. P: G" F- l$ R1 Z4 ?( z, C#include <mach/mux.h>4 n1 `7 Y6 E  s: H

" @5 z; @, ~, V& z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ m( Q1 `+ D# Y* w#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ K  s# b- M) f( l/ c( j#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 L6 j2 t0 u# N8 k9 s#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% E; }/ r, Y, M4 K
! U# s8 `  M, l7 |' T4 B& L/* assign the tl som board LED-GPIOs*/
9 ?% E, G. P8 p& O+ w' H1 Mstatic const short da850_evm_tl_user_led_pins[] = {
( T4 ^, M( @; w% Z+ B        /* These pins are definition at <mach/mux.h> file */  W: n$ {! x- c* G- {3 m# d( w
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* v1 @  m- S! G1 U8 V, j
        -1. B5 ^$ J% g4 ~. H' _
};  k* T1 E! p3 K, P" |$ Q

+ g: R3 B4 y6 O6 z% W; @static struct gpio_led da850_evm_tl_leds[] = {
& Q- _8 p4 b* ^$ N/ o        {
2 \/ w- y% q# c# C6 O+ \, f                .active_low = 0,
+ [0 F5 S) A4 b9 z- W; T1 l                .gpio = DA850_USER_LED0,
  K1 Q- A+ \1 }7 o                .name = "user_led0",
# u; T' R7 M. m7 j' W1 s                .default_trigger = "default-on",8 C- i# ^0 W1 a. S# [
        },
) L, E9 b$ r' A        {
8 `5 k: z% o  k9 w2 U                .active_low = 0,8 _5 Q9 p7 ^0 R5 C
                .gpio = DA850_USER_LED1,+ {9 z, A" d& W' c. o5 W
                .name = "user_led1",* }; p/ D0 D& {- b' N; i4 L
                .default_trigger = "default-on",
" ?8 t! \* J+ E4 |        },- C$ B9 g: Z4 ?, `7 M; S) b/ r
        {6 i/ R. U1 t8 \0 f
                .active_low = 0,
; Z: z' @# C" s$ {5 B& V                .gpio = DA850_USER_LED2,- G3 |$ v0 m$ L: e2 L) S
                .name = "user_led2",$ g1 s- V  H# v* S
                .default_trigger = "default-on",
. T- k6 M: R$ ~        },
# {5 d/ W8 q. m3 S        {
1 h, |* i; j0 _: w' @5 e% e                .active_low = 0,
! g) t- v* O; z                .gpio = DA850_USER_LED3,1 c$ R8 M4 n  R$ X# |; I" z, e, _' p
                .name = "user_led3",3 N( ^  b& j- f- ]2 U
                .default_trigger = "default-on",( s" e+ {, x' ^' Z( T
        },/ X) [( M0 r0 m+ J( G
};- v: L/ N) r8 \: p- q; p9 j7 V  d
2 t  t0 X; A% N  O# w
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 `% o8 f- x1 e! d        .leds = da850_evm_tl_leds,
/ E2 q$ y' J" E/ s        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  b! O- Y; O* C* c  I* O! B};! k: M) v3 P+ h6 s7 _  H! D

2 _% G3 x  P) h& K/ S8 S8 @4 ^static void led_dev_release(struct device *dev)) i/ X5 P, T  T5 Z, \1 Z. Y# ^
{% u$ L4 M1 B8 z* x- x$ e- G6 `6 ?; {0 X
};
/ `% C) z" ]7 r& N) Y, S1 G$ ]+ `' Y* G
static struct platform_device da850_evm_tl_leds_device = {8 d. P5 e6 f9 f" ]1 }4 s' ^
        .name                = "leds-gpio",
4 Z9 V* u# C  t3 D3 |9 A& I        .id                = 1,
9 ?2 ]" w: A. F        .dev = {
* ^! _2 m& T$ l! h                .platform_data = &da850_evm_tl_leds_pdata,1 `, ?0 H4 D- N4 E, A
                .release = led_dev_release,6 j' V$ E' d2 ~+ A4 _1 a+ n1 u
        }
* X8 C8 E; ]: T1 A" E0 ^) r1 S' |};
( m' X4 k7 t# `% ^' b( ?( V" k
. h6 p! f1 L: o; q' b/ \% istatic int __init led_platform_init(void)' p' a5 H& D, A: _
{$ r% F/ V9 {6 j1 X4 C6 Q
        int ret;' f" B' l, Q% M' o
#if 02 a6 P+ o$ D" [; R, G& I4 O
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);8 J% ^4 i! Q, x; W3 l: d3 J7 _
        if (ret)  q' U  `' X$ l8 [, P8 q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". i  Q% l( ?! a% f- I6 R% ?
                                "%d\n", ret);4 O% Q5 M: K' P; F: ?! i- y5 J! _
#endif
8 ^, g+ @( w! E1 O* S        ret = platform_device_register(&da850_evm_tl_leds_device);
. x2 Z) G" ^0 I7 `        if (ret)7 W( e8 E3 y1 {+ q+ U1 ?
                pr_warning("Could not register som GPIO expander LEDS");
/ B6 V* N+ B2 x% @% P        else
# C" O6 w/ l  n                printk(KERN_INFO "LED register sucessful!\n");
: Q# H' e) V% q! X" z( w8 M/ Z! `. G' z# y
        return ret;
, ]$ \" K) a' g3 q) c}$ `% B! @0 @' Z

( n9 x$ g( q6 V9 l3 Ostatic void __exit led_platform_exit(void)' g6 Y; ~- K0 _
{
, }0 V5 L& W& W/ t8 G  w        platform_device_unregister(&da850_evm_tl_leds_device);3 O" N" v0 N4 D  _8 F
1 t& N( {; G3 v
        printk(KERN_INFO "LED unregister!\n");) O7 T5 h: f/ @( X
}
) F2 @( M6 B9 q' z- X0 [
: Y( C6 m5 M) @5 z2 m5 ~0 dmodule_init(led_platform_init);
  R4 s( `$ B  D, O2 t5 |module_exit(led_platform_exit);
5 R" n& h8 }7 J7 s" A- ?1 _- F1 j5 q: o& P5 v* o& t; F# I/ F
MODULE_DESCRIPTION("Led platform driver");: c; S& d8 K( [" Y- C  D
MODULE_AUTHOR("Tronlong");4 H- M9 Z% b1 {9 k* a
MODULE_LICENSE("GPL");/ M9 v; f, T5 e9 _' V7 g

. j, k- ]7 x9 W: l1 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 18:12 , Processed in 0.039063 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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