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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% {; Y# r" I" S( M/ f
#include <linux/init.h>
5 o  h1 O( d2 q) b% P" k#include <linux/module.h>
6 b3 \  V! N1 x: p1 n/ j4 H; Q#include <linux/kernel.h>$ t# F  u  {' _& B! T8 I3 E
#include <linux/types.h>
% [* e) H5 @  g1 T#include <linux/gpio.h>
' ?1 V, L3 c- B3 f5 A; r" y) t#include <linux/leds.h>4 g8 t$ N5 q0 n: M' Q) |
#include <linux/platform_device.h>
6 _( q* M7 `4 L: w: z4 r
0 ^6 u( E! X- b$ c, @#include <asm/mach-types.h>
- d- y$ M% d+ g6 Y; _5 ~5 o+ k4 _8 p#include <asm/mach/arch.h>
# R2 i8 B% L9 `+ R#include <mach/da8xx.h>$ O5 m) K* `1 s- T/ M1 [) k
#include <mach/mux.h>& ?8 D- b7 u' J) R4 v

' e4 L& W7 F5 @# q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 @9 x  t5 X; L# y3 n
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 n3 D" Z' S" Z) `8 D& F3 K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! u: W  p4 j9 C6 h' S. p1 Y4 u$ f#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( Y, [/ w! o5 N9 C" G$ P' l- g

  X6 e8 Y6 P2 t/* assign the tl som board LED-GPIOs*/, h- D3 F+ o6 {. G+ D% H
static const short da850_evm_tl_user_led_pins[] = {% M$ W1 l! E5 Z' x5 D0 u
        /* These pins are definition at <mach/mux.h> file */1 Q5 M! r! h* T1 H
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- e3 O, {  t8 h* H+ E' [8 e, \        -1# e' {5 m2 e: m+ h
};7 X& L: Z- T; ]  p/ s& [

  n9 ?, i5 o+ n& `* c" _$ W% ostatic struct gpio_led da850_evm_tl_leds[] = {
( Y+ `2 w3 X! w: z        {1 c$ x3 _: i* K: e# B
                .active_low = 0,) W! q+ O: f! _" W6 ]
                .gpio = DA850_USER_LED0,4 F7 j! H" F9 W4 V- V$ E5 x
                .name = "user_led0",
8 C  ]8 W1 F4 E                .default_trigger = "default-on",
* ^# d5 k4 H; D" Q& q        },6 Z# i0 z6 X; }8 l2 t! J, D
        {. b# p* [+ D( ^# X
                .active_low = 0,
6 _" t& m9 w; s& |* k. r                .gpio = DA850_USER_LED1,
) q2 a) N' s  w8 }% a5 J$ z7 G                .name = "user_led1",
! L& v: u) {8 r# f: g1 c1 @- p& e9 Y                .default_trigger = "default-on",
: W& o- j- v& A6 P0 V6 Z+ l        },5 S3 ^5 g. A' d3 h3 G. Z
        {
' R1 J1 y+ j3 l$ y# c' x8 X                .active_low = 0,1 f9 `. S8 x" _9 n& u$ n2 y2 n% T8 F
                .gpio = DA850_USER_LED2,: t' v7 j! d( x% ~4 h
                .name = "user_led2",$ j/ P% G" i2 {0 i1 B  R$ M
                .default_trigger = "default-on",9 I# M. s7 `$ L( ?! f3 y. r. O
        },: z+ l! M6 K1 s8 o4 u# z
        {* B0 B4 R6 a/ f% Q7 m7 k, e0 j
                .active_low = 0,
% Z$ X$ R0 `4 H( V3 D( R                .gpio = DA850_USER_LED3,# L3 @5 Q5 \! R. V
                .name = "user_led3",
* D* Y3 @$ q% Q% i  i. a8 L                .default_trigger = "default-on",- e- n) D( c+ w6 s7 t6 ~% L
        },
, h5 q( Q) S. K& M: _; f};  Y2 G" u2 P/ [8 g5 w" o$ n' Q5 x2 H
) m+ @3 x; o5 w$ Y/ y/ K
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# t( Z7 L, `2 W
        .leds = da850_evm_tl_leds,; A% H4 s0 J1 J4 g2 A' b
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 k' b5 Y* D: @6 I+ Z};
" D9 K4 n8 V- s& ]3 y( Y  i" e$ F9 [
static void led_dev_release(struct device *dev)* }0 `! p: _& w; W9 O7 N* ~
{
5 N7 ^, E% w% M# S};
$ b# `5 e! m1 Z3 ^2 J! G* t3 P, w+ {( Z& w: @
static struct platform_device da850_evm_tl_leds_device = {' m' {* u0 J- E+ D7 [
        .name                = "leds-gpio",
: V, m4 ^6 J7 G        .id                = 1,4 N. }. x7 [! x! u4 ^' G1 `
        .dev = {
$ i7 A/ t) a6 x; A% p% t  L' q                .platform_data = &da850_evm_tl_leds_pdata,
% e  @8 x- I6 z6 _% z: F                .release = led_dev_release,
( n1 C2 u8 s1 {5 b* ?/ g9 ?8 P        }
7 Z% j- ]0 a  Q) g};7 H( Q( |/ g5 j; T6 G# L
% p. m" k5 }# V  ~. f4 L4 I
static int __init led_platform_init(void)
. }% D: H+ Y, L{
( w5 k7 i, e! \: f1 z3 y        int ret;9 l. ~6 _3 z) K- M6 x1 R0 z
#if 05 |0 T2 {* u4 ?9 S; h. d" Y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 l9 K% C4 J9 f0 V7 L. U
        if (ret). [) ?! g# s9 n4 e8 @# G
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( B. a! f1 V' s$ s, B: o
                                "%d\n", ret);
8 A: q6 s5 j; _% `( i  @# S#endif
1 e! R9 ?/ I! F1 J$ F4 X3 ]        ret = platform_device_register(&da850_evm_tl_leds_device);4 }3 V' X2 D# j/ R$ Z% g
        if (ret)
, X& g$ ~: k- f                pr_warning("Could not register som GPIO expander LEDS");
: v, q  R$ E6 W6 F        else
5 T0 S2 H. _# V( W8 e                printk(KERN_INFO "LED register sucessful!\n");
. T9 ?5 m; z4 V6 l; W8 F# w: y- |, o/ D8 K& u+ W. h- i  K5 K
        return ret;4 O! L2 y: Z# U- D0 R$ W
}% |" ^+ U* T! s% _4 P- z- L8 b
' [  @2 u% P. T9 Q% ?
static void __exit led_platform_exit(void)
3 `; F5 W9 j, r9 U- F/ ~$ Q{
9 `- Z, X, X$ T2 n        platform_device_unregister(&da850_evm_tl_leds_device);
+ [( [; M% R. v8 ^- ~8 b! C) [
* ^, s+ O3 [. ], @4 _1 h9 m        printk(KERN_INFO "LED unregister!\n");
# R2 P; W8 z; _9 q% g+ A" t2 R}
1 C( z, x9 {3 `% A) o3 U) }0 h: P: X) B; r
module_init(led_platform_init);- ^2 ~, B4 _" b4 A
module_exit(led_platform_exit);
* l6 \- X# X! r8 S+ n' W; g/ W% t9 o
+ G- S6 |0 ^4 }- H7 PMODULE_DESCRIPTION("Led platform driver");1 X- K8 y3 {' ^9 H# N
MODULE_AUTHOR("Tronlong");
: ~4 H3 O, M( d6 J' m8 UMODULE_LICENSE("GPL");
) M0 P' r2 f1 A! L0 Z! p1 k7 h* |* j7 q4 t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-17 05:08 , Processed in 0.043651 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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