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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" v9 ~. G* X: e! C
#include <linux/init.h>
4 `( D; U- E, r0 b#include <linux/module.h>  A/ ^9 h1 O: I& H7 k: D
#include <linux/kernel.h>" `5 f1 |* L5 g2 D9 \" R
#include <linux/types.h>
+ B% i  H8 ?1 u' n4 V" Q' n1 X* @#include <linux/gpio.h>
; }2 j5 {1 z" ^# [/ S7 {#include <linux/leds.h>
+ I6 e; i1 N, M$ B9 L#include <linux/platform_device.h>
5 B& ?* l" I% M- B3 v; d3 T2 {/ _! p$ @$ {- |
#include <asm/mach-types.h>
& I5 L5 A/ Q6 F) |* ~1 D3 k# w+ p- J; ?2 L#include <asm/mach/arch.h>
+ U" e8 e2 R5 C2 b' O#include <mach/da8xx.h>) M3 F7 j# {$ ~4 Y
#include <mach/mux.h>) G/ h8 r/ C/ f1 X
4 Q& p8 ?) L* Y' v
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& [% E. s3 ?' `. W; C( M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  h0 f6 b' ?, k5 U) \& V( |( z4 U
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ y/ Y0 ~9 K' e7 M#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 H2 _) n" f2 ~: ~
, `, U4 Y2 ?9 Q, i0 W
/* assign the tl som board LED-GPIOs*/) K. c: |- B6 m/ g' x4 R7 `
static const short da850_evm_tl_user_led_pins[] = {
# m- V* o) @/ E6 T; S- d- {7 P        /* These pins are definition at <mach/mux.h> file */6 n* C# @5 a7 Z& \
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' I/ s- J$ M4 S- l' N2 E' C8 o
        -1/ G% Z- {( s2 @: s
};
+ e! l9 i9 ~% ~
( Y# }0 ]! c' q; x  I, ^static struct gpio_led da850_evm_tl_leds[] = {
1 W( a. V7 ~# f. \. S/ P        {1 C. m7 V4 X" e) O1 e2 X9 I
                .active_low = 0,2 I1 B& @: B; _
                .gpio = DA850_USER_LED0,
$ s3 T3 B% H+ z, W$ n% q3 a                .name = "user_led0",9 n" C$ `3 c# A, z' H; p
                .default_trigger = "default-on",* t5 A# g' _/ K' [, Y& e! P& K
        },
7 P7 Z7 p- a1 c( h        {! `) U- y9 Z5 i" R
                .active_low = 0,
' D6 h! |4 a9 z- e; E4 b7 j+ F                .gpio = DA850_USER_LED1,/ q. x/ c# P# t- K8 {
                .name = "user_led1",& f* z, b3 I( F% i  C1 ~
                .default_trigger = "default-on",
' d0 J. P/ y7 v1 Q0 R9 y" H8 J        },2 ]5 x: Y/ w" _8 S+ s" F5 z
        {
& O- V% S" x: w- I                .active_low = 0,
9 a3 r1 Q: J' k& k, a                .gpio = DA850_USER_LED2,
* R7 v) @2 Q  P8 v% R                .name = "user_led2",  @  m! i" Z1 Y6 U, t/ Q
                .default_trigger = "default-on",! t* {9 i$ |% `" U& T2 @! G7 b) R
        },
  Z9 _7 Y6 z4 a! c0 b' H9 i        {. m# d2 R2 y7 x6 t0 L2 M; Q
                .active_low = 0,  D: m% O1 |& T. w( y, }  f, V
                .gpio = DA850_USER_LED3,
; @4 }& T: V3 `( `& ^, e" o                .name = "user_led3"," [3 m! b: J$ Q& k3 u8 J4 g
                .default_trigger = "default-on",
" w3 h& w7 }" z( l        },7 D+ i/ F  N( c0 t, d4 c5 i
};
; t: Y4 `: O& p3 p+ ~/ p
- T1 i8 o7 o/ H  Fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; s$ I& Z3 k' D- h        .leds = da850_evm_tl_leds,+ h1 h! Z- L6 s; v) F* t  Z$ [
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 @$ ?- q, Z  G& R0 a, f' I
};0 \" S: T1 G2 r4 O

9 I; A: c  Z9 X! G5 vstatic void led_dev_release(struct device *dev)
' Z  W' j' {+ h9 Z1 E) z{
0 x; Q' l( L) \, {* \0 A3 K};
. k; p) X- ?, @5 t$ U% s+ [
7 ?4 O, k! G; V7 Y) @6 wstatic struct platform_device da850_evm_tl_leds_device = {& J% g4 z6 P/ V3 ?5 H7 ]
        .name                = "leds-gpio",9 j. H! a7 P$ X6 f
        .id                = 1,
2 o( R6 F7 j8 v* R6 z: P: B        .dev = {6 X& w9 Z! M2 _  W6 ^$ G
                .platform_data = &da850_evm_tl_leds_pdata," n# J% j3 o# V0 X) B2 ]- ?9 l
                .release = led_dev_release,; G  y  I3 m- [% V9 e
        }4 E+ O1 Z% E" H8 `* o2 O
};) {1 E2 L7 _; I; S3 Z; I
8 ^5 W' n+ j1 i$ p
static int __init led_platform_init(void)
6 G7 A* M* P4 `/ ]{& z5 c6 W) I/ E1 O
        int ret;- u7 t5 V7 E: S% A. w* w
#if 0
  k1 U8 [9 a; r        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ H" g" y8 S/ f3 z, K) M: p- v        if (ret)
4 a- @8 Z8 D  g: c$ B  p                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# O* S5 K" O6 _+ v) n
                                "%d\n", ret);
* B# v, X6 g5 e$ F+ x' P+ G: T* [. Y+ b#endif
3 `, Z) x5 ]" Y' T        ret = platform_device_register(&da850_evm_tl_leds_device);+ P8 z2 s' B3 }
        if (ret)# v7 }( u8 N' B5 M2 ]. A+ S; A
                pr_warning("Could not register som GPIO expander LEDS");
! x& D  ?+ R6 _6 M! M; Q3 l  Z1 Y        else
* y( ^8 z. W; y! Q8 r% k( X                printk(KERN_INFO "LED register sucessful!\n");
# \1 W: ^# y% Y2 J. A! p, R2 J' V1 S# t- G, |0 @" C" i2 J& V# S1 M
        return ret;8 v* M, V# }" r+ S( J# B
}  ~% j2 P$ J& l% L$ m5 `. h
! s2 r, E7 h% ~; {' }# T" v2 v, V
static void __exit led_platform_exit(void)0 M$ K" G. k3 W  a' k& Z
{6 H; s  @+ \! `' J- W3 t& p" n4 ^
        platform_device_unregister(&da850_evm_tl_leds_device);
% g' e0 B' Z: L" Y6 z
" \  }* i. a& W% c4 g( ?        printk(KERN_INFO "LED unregister!\n");
" m# ~$ B6 R6 y}
9 R0 q( G, f5 d' \/ p' l% h; W( _$ G' @: p; J- i# v6 L- Q
module_init(led_platform_init);* F6 p- l% i4 C: |
module_exit(led_platform_exit);& C6 G# v4 G  |" L4 D* O* S

$ R& ?- Z* z( W& l  B. ?" ^3 ^MODULE_DESCRIPTION("Led platform driver");
( m, v8 {3 b  V) F) K/ l4 a- |, nMODULE_AUTHOR("Tronlong");
) \, r2 [# ?' x' q2 _, J9 \MODULE_LICENSE("GPL");
* j( ^  G: L! S/ `  E3 a& l  ]. L+ j+ |- g" N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-9 06:51 , Processed in 0.038569 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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