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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ |5 ?! W$ O, q" m+ x$ A: U0 o7 ^/ a
#include <linux/init.h>
, _" J! C( L* w, K3 p( X9 k& a#include <linux/module.h>( h$ P( s- V' N& {
#include <linux/kernel.h>0 ~2 ~+ M% f* `* D& h( w; u
#include <linux/types.h>) b; V, V. D4 p1 q& b
#include <linux/gpio.h>7 Z1 d; X; ~* p
#include <linux/leds.h>4 ~% Q' q; `, B1 o
#include <linux/platform_device.h>7 K- W: I4 l5 x9 S7 e+ g: X7 w' t3 M

7 E$ M( }- Y% q- ^5 @+ s#include <asm/mach-types.h>
% v: ^( `9 L- V' G/ l/ I  d; P#include <asm/mach/arch.h>
5 C% N: \' c0 j: T, a#include <mach/da8xx.h>
: N# A% d  S: |6 C4 i' k#include <mach/mux.h>
: R+ F. _# t7 m' W
' d; C1 J  v2 r3 o  D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! P' o' e5 ~4 m1 e#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& _: a% n* n  A#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" u& K0 h8 C1 o1 S' V% n
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 L* W; ]+ A6 k2 l+ |; R7 L/ ~% ^: h' f8 M4 u  c
/* assign the tl som board LED-GPIOs*/9 {) k8 h& T1 N( ^  c: r5 l
static const short da850_evm_tl_user_led_pins[] = {
  C  }) }3 q: l        /* These pins are definition at <mach/mux.h> file */& e* P& p8 Q4 K4 P' _" ]2 v3 _, H
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' O9 r" K! U! l: `7 Y9 B0 k" m        -1
6 k) d( `6 u# v) \5 p' [};5 m6 @% _5 B! U; ~8 C& [

9 F% n$ ~5 m" I/ y' Rstatic struct gpio_led da850_evm_tl_leds[] = {! {# ]. S# {% J0 u9 s
        {
& R7 M& l- w4 ]                .active_low = 0,
2 M( B/ d4 ^5 @( X+ ~7 X                .gpio = DA850_USER_LED0,. F8 G: L! F, ~9 Y* N
                .name = "user_led0",
& L/ _) o% l: }2 O& w8 x$ N  V                .default_trigger = "default-on",
/ |- P# Z2 y7 x' k, p/ \+ K8 P% ^        },
. J9 o- b4 z+ B        {0 B( q" r# X0 Q) _2 z% Z" j
                .active_low = 0,
5 x* \" {  m2 t0 X- V! O                .gpio = DA850_USER_LED1,
0 l( A* {' G. j# d9 r: ?3 m                .name = "user_led1",' H: _6 c3 z( J$ A+ F, p% {. f4 Z( ^
                .default_trigger = "default-on",1 n6 I( q0 a4 B+ b$ X- U( O
        },
0 o/ Q; G7 S5 W: k( k        {. l- M& Y" R9 X' y
                .active_low = 0,
" n0 C( L# U' r% Z& P                .gpio = DA850_USER_LED2,5 {  a! l1 b' y4 A1 u3 ~& ~
                .name = "user_led2",3 s8 K" C6 p* }/ ~: X8 b
                .default_trigger = "default-on",1 K2 x+ c9 E3 i( V( T
        },
6 D0 m0 g* t: j4 h4 D        {
, v& U! p6 g. M( U5 d4 O                .active_low = 0,6 t; A+ e% m& A" R: ?3 V7 x$ g
                .gpio = DA850_USER_LED3,- y6 b0 \( o/ U9 k6 F7 ?$ M. e
                .name = "user_led3",* S* }! v& a3 T5 K6 i# b2 s
                .default_trigger = "default-on",
7 T+ M: r* \$ n" t$ |5 a        },
; |8 G4 [' A3 W, R( W};2 h& T/ {, [% J( x: s$ n% K
8 c/ g2 o) R0 f; m" v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. V. A8 Q( ]3 K' R6 j" I% D
        .leds = da850_evm_tl_leds,
8 y/ i8 [% h( B        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 l! G) E- z8 s' E4 t! s};
7 G) b# R/ I$ F" E9 x/ h7 Y4 A; b; c" @0 j4 K# c
static void led_dev_release(struct device *dev)) ]( z( ^+ d/ A! m
{
$ ~: l* K; r# b8 S- k* g};
( k: ^+ f/ `( ]' ?; y
: c+ g9 A. q: h& g9 M2 ~0 fstatic struct platform_device da850_evm_tl_leds_device = {" r  I/ S9 U' y! M2 K
        .name                = "leds-gpio",( |" N# k6 g6 D2 M; r) x
        .id                = 1,
7 }) U6 l' O" [        .dev = {
( T" L6 ^& u* k0 l                .platform_data = &da850_evm_tl_leds_pdata,* Q& }1 ~' M' t( @+ a
                .release = led_dev_release,
9 Y8 u* A8 W" D- t        }
1 P2 s6 |; Z+ D8 ]};
5 i/ [4 k, H0 d) ?- B4 l6 n  {( ]0 d3 ?/ X1 ~6 V  y1 u
static int __init led_platform_init(void)
" A" ^+ s) }. a2 b2 S) \1 D{
" X  x" Z. L" ~% ]+ l        int ret;
# z4 N% o1 N% K9 c1 ~: p#if 0! P4 _9 X" i7 e* o; x
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! F7 Q5 U9 _" I3 q: r        if (ret)
" C0 C. P- d2 R  o$ D! S  `' a6 I                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( H% {0 o3 c# W- W5 G* J
                                "%d\n", ret);7 \) A+ g& D" Z$ D" ~, z: |5 H
#endif0 E$ J8 A7 [& K% @4 `8 L
        ret = platform_device_register(&da850_evm_tl_leds_device);
2 o0 V) E1 K5 M3 u- z3 C5 P; ^        if (ret)
: s- D9 _) K5 X1 W) `: x                pr_warning("Could not register som GPIO expander LEDS");4 ], Q; u  _" @6 N) c" r
        else
# @5 q  C& u; M                printk(KERN_INFO "LED register sucessful!\n");
; i6 ^- s; K* e# _4 Q! K" f$ X( G  I* ^
        return ret;
3 g: h5 {( C  a1 P1 |( ~}
5 @) I/ f" ?, U2 m) o" c* x
+ A7 `% Y& ~4 E+ M. z5 p/ U& Jstatic void __exit led_platform_exit(void)0 ?& [  _$ I: l/ o. e
{
" I; L) S/ I' C        platform_device_unregister(&da850_evm_tl_leds_device);
2 K& O, T# t5 M4 E6 [+ P5 `1 ]) w( F
2 S. D! Y) N8 o6 J0 N# K1 k        printk(KERN_INFO "LED unregister!\n");
; m" A: U/ l; F8 S- [}
( |& `' I. F* g! B( y, b; M2 J0 j( u0 ]5 G* i6 F" B: B
module_init(led_platform_init);
$ m3 ?$ S! m: c0 b0 N* [$ O& [module_exit(led_platform_exit);
/ s6 m* c9 ^# k5 q1 j* S
+ P( v$ S( o% z& }0 s3 _MODULE_DESCRIPTION("Led platform driver");
& C& \0 J. b3 X/ v+ R2 \0 p9 b* {! iMODULE_AUTHOR("Tronlong");2 h! P$ v% m/ [) Y% i
MODULE_LICENSE("GPL");0 A, a3 I" m) N6 A% q
  Q2 T8 C6 L! Q1 U2 D% v3 d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 11:43 , Processed in 0.047180 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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