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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ ^4 D3 {& w+ V8 ?6 l6 B" ?  K
#include <linux/init.h>. r0 k7 H# S; f
#include <linux/module.h>
( Y0 A6 T  ]* f; c' x2 i#include <linux/kernel.h>8 L, _$ t! u+ n5 g, m
#include <linux/types.h>
4 C- e1 E: e: G1 S+ S#include <linux/gpio.h>
; i. b8 q! p/ S8 V#include <linux/leds.h>
% ~( \! S! U2 J+ ]& W; N% z#include <linux/platform_device.h>; w; W- F: L" [" Y! M

& G' _  J/ h2 ^1 q0 e#include <asm/mach-types.h>
1 n% T' S( z$ b# p8 R#include <asm/mach/arch.h>: V& t. G' W; @& `0 g
#include <mach/da8xx.h>0 I/ H' B0 C* q1 B1 T5 L( f: x7 J" e
#include <mach/mux.h>' f; b  s' b6 y  W. i" j, \2 u: c

# k" |3 i) @$ `3 m#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- j" G; X: Z, o& M; H1 |#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  Q( Y3 P5 W2 Y! Y# r4 X#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& n6 S/ G8 m6 I- {, |6 A! r
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 s1 J* u# [) x% ^! |! ^" J
2 a( |* J( A7 q4 [( `4 y/* assign the tl som board LED-GPIOs*/8 k4 E/ j  ~! D9 C* V" D# k( {
static const short da850_evm_tl_user_led_pins[] = {
4 X& y' d: Q8 d" g        /* These pins are definition at <mach/mux.h> file */- f5 C+ N" B/ J9 ^" m7 v' \
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 t( |" l9 h5 [9 n+ |, L        -1
; H9 |5 D% O# `/ ]. [$ o};+ l8 I  r: J1 B6 d

& M& O9 w# e$ |' D: b& Dstatic struct gpio_led da850_evm_tl_leds[] = {
1 X: u' M# Q5 U. W        {2 k- S0 a, \/ o2 |' o# N: u' \6 v& O
                .active_low = 0,
8 A% [7 T+ r' `. a  `4 L                .gpio = DA850_USER_LED0,/ d) e+ N" ?. {- Q5 M' h
                .name = "user_led0",
1 c7 Z6 w: @7 v' R                .default_trigger = "default-on",: E) _/ w) R6 Z
        },
/ v+ s) y; H6 _. r. G9 p2 C* \7 J4 C4 c        {0 R8 v7 ~- I  {) n
                .active_low = 0,
0 }2 V( m1 O) O) h                .gpio = DA850_USER_LED1,
1 M# ?4 g0 ^0 c) m2 \) I                .name = "user_led1",- e) h( T" {- ]- @7 q3 K0 U
                .default_trigger = "default-on",0 d' p- e# W; d9 x
        },' i# M9 k, F! ~5 C
        {# Z* S  Y4 D1 U8 n7 i, H
                .active_low = 0,
+ S2 Z1 M7 w& o/ \: X+ _5 e3 I                .gpio = DA850_USER_LED2,; Q# `' |, N- n4 D5 n& g2 n
                .name = "user_led2",4 h8 K" f; n; @# T/ t+ P7 k
                .default_trigger = "default-on",
$ r/ W0 \4 ^$ m5 R/ c        },/ w. W7 L9 p1 d% m, [' C$ N% R% ]
        {' d- D4 }; z" f9 Z/ d3 i
                .active_low = 0,
1 o: A  A/ q7 f2 d                .gpio = DA850_USER_LED3,7 \& |/ |; W' m6 b
                .name = "user_led3",3 ~  j! |' N+ b8 G% o$ j  n
                .default_trigger = "default-on",' |0 }$ \" K6 o' M9 ?3 N4 j6 x
        },/ v% k: H5 P# k/ B2 p
};
/ G8 L4 _2 `' ]; g1 K. g( }4 p) @1 G* j( C+ K) ]
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 g# I" e" e8 @0 t) o8 u
        .leds = da850_evm_tl_leds,7 k& P+ x: u3 [9 K6 ~
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 i% `( N# S3 g' u};! z9 \$ i0 ], |
$ C' {8 r" F. F7 h# K
static void led_dev_release(struct device *dev)2 F5 @0 \, d0 v# X; h3 M: a# T
{
: v, N- Q1 f. L$ d# v% U};. g1 l( L8 H' c( ~# W

: R1 `# t& l3 q  P( u, B1 ?5 Pstatic struct platform_device da850_evm_tl_leds_device = {
; @8 `5 [) f% f8 @        .name                = "leds-gpio",, B) W. M; q% p( c
        .id                = 1,- ~1 A( l3 x' m1 }
        .dev = {
: s5 K- ?' N! D6 B                .platform_data = &da850_evm_tl_leds_pdata,) ?) t/ h" W$ r
                .release = led_dev_release,0 u: x( C% o0 h
        }* k  c8 b, V9 g# G, H, Y
};* \7 [% T5 W: |3 @- ^8 O

3 O- {, g. T. n* r& Rstatic int __init led_platform_init(void)
. L; D1 v' l5 R4 i0 H( Z{# x' Y& s7 r$ V! I
        int ret;2 m) R$ X: N2 V( |  v7 @
#if 0$ q9 c; m0 H. B. E- |- m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: g5 `& b+ Z: Z9 M0 d6 F        if (ret). a1 m( z' d0 W: A+ w; f
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; @. r6 l5 s. y- [
                                "%d\n", ret);% P7 s) A- C2 A- l
#endif
" s+ c6 \7 @* W; _3 e' X( \5 [! ^        ret = platform_device_register(&da850_evm_tl_leds_device);
% U; Q7 ?$ N9 I: b* g3 P5 ~' K- P        if (ret)
8 M, B% j8 d% _" l. I                pr_warning("Could not register som GPIO expander LEDS");
! K7 g# D$ V8 q; T        else
% ]2 |& S7 F/ k! [  Z6 Y% r* j+ s                printk(KERN_INFO "LED register sucessful!\n");
  B$ M( T4 C0 s4 m. M: e, H# X7 k; F$ U2 E# `
        return ret;
6 }! q5 o/ U. a- i3 T}
5 z  B: a; F. z  M' F' k1 j4 @) h3 i/ E/ ]0 i! _
static void __exit led_platform_exit(void)( h9 h. k  V& H. y1 b' S- q, K5 p, L
{4 k" k  T; }1 u- K
        platform_device_unregister(&da850_evm_tl_leds_device);
! R! Z* _' t- e+ m, z/ }7 y# x
; N* o+ A* y. ~" r+ V* z6 i        printk(KERN_INFO "LED unregister!\n");5 ~, ?' C3 z1 |9 G' y" |
}8 u$ ~$ g, }  y. p4 _" s
8 A- Q- t/ Q! }. `; F( ^7 s2 d: W
module_init(led_platform_init);
" d4 n9 z5 R6 o: mmodule_exit(led_platform_exit);7 [* t/ ?' f) ^  _

) e6 q( k6 z% [+ o4 v4 c( WMODULE_DESCRIPTION("Led platform driver");  i, [* p' e1 W. a
MODULE_AUTHOR("Tronlong");& I9 E( D/ T8 c3 @, j% U  ^
MODULE_LICENSE("GPL");
( }2 h+ w! I. O
8 L" I4 h+ q/ [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-4 21:02 , Processed in 0.039031 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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