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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# `6 u& o, \4 e9 [0 C) k( K1 u
#include <linux/init.h>
9 I7 V: S5 _! G' }  Q1 c3 f! f7 [4 u#include <linux/module.h>- r1 t, K) O& O7 \6 o8 G5 g
#include <linux/kernel.h>
9 g# t# H- e- G#include <linux/types.h>
- u- K3 v! g- f; S' o8 m#include <linux/gpio.h>
. L3 V0 l9 D, A4 y0 c: @. q+ Z#include <linux/leds.h>/ b$ A" `# E' }
#include <linux/platform_device.h>
( S& Z* \1 o6 ^& k
4 \$ f  p/ o& E& v5 g& {; C#include <asm/mach-types.h>; k( ^; Y# S3 P
#include <asm/mach/arch.h>
* w$ U. Y/ s# ?6 X% T* S#include <mach/da8xx.h>. d; r- a( t+ F! F& R( {; [3 N- R
#include <mach/mux.h>
0 i8 M$ I* d$ E( U' E8 W+ p
4 t6 E+ l9 L6 m8 p  ?0 d9 I#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% Q( n7 _5 _0 i/ r1 d#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& x. _7 J: O+ g3 S- [- ^3 p#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; {  C# F* G' |; O( X" `- G3 D* i#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) H: K; c3 B0 R( ^& N8 {

2 n- v$ ~9 j5 K: I$ P/* assign the tl som board LED-GPIOs*/6 z! W7 e1 ?3 I; V; t& J
static const short da850_evm_tl_user_led_pins[] = {
  a) V2 x  _$ o        /* These pins are definition at <mach/mux.h> file */* d2 O' o2 y, z/ _, D+ k
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 p+ x0 t% k) p4 U4 J5 a        -1/ Q+ S3 q' X! ^' l6 O5 N
};9 E$ F& M8 o7 o% f2 l7 r, }1 M
- E9 J! ~9 M. t, S1 W
static struct gpio_led da850_evm_tl_leds[] = {* n+ c1 i0 w& u' |( U( n
        {
/ `. K4 e& V0 B( }- |: ~                .active_low = 0,
( ^7 S% A" @: t% q' p6 i. ]                .gpio = DA850_USER_LED0,
$ K  H6 ~5 c  G                .name = "user_led0",
( S8 D' u# [( q/ ]& V! Y4 W                .default_trigger = "default-on",' J0 g* r& n( I/ r/ ?+ E0 |
        },
- M# I1 J, j) Q% r9 Y; c' E        {8 E3 C: Y" X( r1 i. z9 N3 I
                .active_low = 0,$ a& B: |, h- f2 Z0 {
                .gpio = DA850_USER_LED1,
, u8 Q; g7 T7 l# V                .name = "user_led1",) c! ], S/ Y1 u# V
                .default_trigger = "default-on",% ~6 R$ L& g4 h# k/ {5 w
        },
6 b) Q, N+ f$ P/ @) \; A        {) V( h" O; R# R" `2 \
                .active_low = 0,2 h% z$ h) t8 X) Z4 V
                .gpio = DA850_USER_LED2,; d% W# X: Z( m/ A; ]
                .name = "user_led2",
2 D) L. V; P: G                .default_trigger = "default-on",+ [( k2 |/ Z; o# U  K  l% H
        },
  T9 p5 q5 V4 [1 {        {
3 i& ^, y' N8 |3 d2 d                .active_low = 0,
+ X! M. ]! x! e$ _: {( b5 }9 O                .gpio = DA850_USER_LED3,
$ Z5 Y: V) c! ~8 d* ]( F* Y                .name = "user_led3",
4 a# ]8 q/ m& T9 w                .default_trigger = "default-on",) r9 p7 K- H4 u) B2 b
        },
, u6 K1 V# k% D5 D: U8 \};
; a, R  ^) @6 x" Y& v, d# }# L( a3 T3 A  y& B# ?3 F$ P
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& [  D* c8 t& H1 ^* g/ k) k        .leds = da850_evm_tl_leds,
9 A9 k7 R  @# H' A        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 _: B1 |4 A( t) T};
- k: _0 V8 N8 {$ Y& \( P5 A9 g! P4 S5 D: f/ s3 b
static void led_dev_release(struct device *dev)
, @6 T, _2 C' ]+ t2 X7 A{1 m( p  x/ w& U1 {( P9 J
};, D: v: c. B' k! c# Z0 n8 C
+ }# B) c% F2 \) F0 h* O
static struct platform_device da850_evm_tl_leds_device = {. R- R0 T2 @# g9 [( U0 I
        .name                = "leds-gpio",6 p1 A; [$ s2 _2 y' T
        .id                = 1,
' f) l: ~3 q; y7 d        .dev = {) n1 E/ w7 c$ K# x# ^- h9 V4 Q6 @
                .platform_data = &da850_evm_tl_leds_pdata,
/ F- M$ m& M: M. Z( ?# b! c                .release = led_dev_release,6 v- x/ X8 [) P! o. P
        }* e$ W% n5 j9 Y8 D2 t  y( U' H
};  X4 L+ m" h, W$ |2 l2 _2 Q$ X
' J' x; @/ r6 ?7 L
static int __init led_platform_init(void)7 C* O" f" \5 l0 o' R
{) q6 Z! i$ ]0 u7 I0 H6 T, m
        int ret;
; D% ]2 F* \$ o: w' ^6 ?#if 0
: ~. X% |/ O5 D; E- E        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 _2 j6 C$ h$ H        if (ret), C3 `7 v8 P% B0 @- [' B4 L
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 d3 C( t9 Q0 c# ^+ m9 P: F3 V; c
                                "%d\n", ret);
8 }$ V/ @, K& g. B4 F2 Q/ Y5 e, K#endif
, j2 L, y: t5 `# Z6 V  c        ret = platform_device_register(&da850_evm_tl_leds_device);
0 z$ E8 O  t5 V" I) W# q5 ~% T        if (ret)* y: K" M9 {8 k0 T' f# }* ]
                pr_warning("Could not register som GPIO expander LEDS");9 M  c0 A2 m- T
        else* ^3 v/ m! K. D# o; V9 i
                printk(KERN_INFO "LED register sucessful!\n");) v" y9 T0 H; Z$ m+ r

7 G- R* F8 d* r% {4 i        return ret;5 R1 |' `) h3 z, Q
}& ]& ~4 U* T6 f
/ W# q( w7 j) @9 x
static void __exit led_platform_exit(void), r* d- D/ o. G9 z5 N8 r7 a
{% l$ Y# a% u# A
        platform_device_unregister(&da850_evm_tl_leds_device);
9 d- O8 p* a7 B8 h2 ^" t
7 C  i1 H" y# C1 p# B        printk(KERN_INFO "LED unregister!\n");
) f' i& d, C; Y9 r# X}2 s: w4 X9 b; g( b

7 D5 U6 {2 a6 w1 ^' C7 t6 i, N, Ymodule_init(led_platform_init);7 `/ v. C; C' U+ d/ N& m
module_exit(led_platform_exit);
& l0 @& a  \7 y& ]! V+ R# r( R9 {
' w$ B  Q4 W+ F: |1 a8 ]MODULE_DESCRIPTION("Led platform driver");
  m+ T9 A# E8 j" u  {MODULE_AUTHOR("Tronlong");
0 z) ~. i+ k3 m" \! YMODULE_LICENSE("GPL");
& S( R& f( _% y# k2 v4 ?
. I+ J* G: ^2 A4 d* o! p! a# q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-9 23:17 , Processed in 0.047415 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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