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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 _+ G; W* {4 `#include <linux/init.h>  k7 f2 M) k, W& z2 x! m
#include <linux/module.h>  ^& H: U! f1 |/ o- i* j1 g; E
#include <linux/kernel.h>: x) G* v8 v' ]" B7 f
#include <linux/types.h>/ a! U' O' l  F. A: J, h
#include <linux/gpio.h>* r# E( a# ?6 M1 H
#include <linux/leds.h>* b7 N8 W, }2 K5 I
#include <linux/platform_device.h>  E0 y/ S- I/ }! H- {/ t3 X
9 @% |$ K# N! [9 k( t+ O& H/ d- y4 n
#include <asm/mach-types.h>
7 i( P0 ~- ~* K#include <asm/mach/arch.h>
# N& j0 t( W3 w! z) Z  p8 j. z#include <mach/da8xx.h>* J! B0 o0 k  E  H6 c8 p
#include <mach/mux.h>( m6 K. Q' t2 [

4 q* }( K4 j4 t#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' G( h: g5 i/ @. c8 ?, a9 l- S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' v  J' [/ ~5 P7 o#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) I; V7 Q3 N1 X
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): y  B. `2 O  x8 u" h) u2 @9 x

5 O7 {3 v  y' k2 W$ W  {/* assign the tl som board LED-GPIOs*/2 a& Y  u. G5 q6 h/ G! `
static const short da850_evm_tl_user_led_pins[] = {
( {  H/ B1 X! G3 G        /* These pins are definition at <mach/mux.h> file */
2 y9 m; d  T) n: d        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, h2 h$ z( Y2 e$ c2 L+ ~; i        -1
( F* y- q# M5 g};: e" Y5 X$ [+ J* d& S( c- z

# L  @4 Y- N; x. N' xstatic struct gpio_led da850_evm_tl_leds[] = {
+ |6 a! x$ R; M1 C! G" H        {4 P- U$ }. U& y, U) B8 A& ~
                .active_low = 0,
" h; n% ^$ U7 R9 h( l                .gpio = DA850_USER_LED0,
8 A! r/ Y  G) Z1 l+ L; S- K# |: n                .name = "user_led0",
4 p# G0 i+ T( q9 U0 b( P5 y; A                .default_trigger = "default-on",) T1 ?8 q, g; I* O' L: @+ _
        },
7 J2 @) S8 m# K- D" G5 g        {! }8 @% F& m- ]9 C6 x
                .active_low = 0,
* I" z+ O7 l# w5 c5 _2 V                .gpio = DA850_USER_LED1,
. B& F! i* {* n" b( s8 n                .name = "user_led1",
; }4 p% c1 ]+ y2 ]7 b2 q+ h8 q                .default_trigger = "default-on",4 r! s: o2 N4 o# X) {# \8 Q
        },' X7 Z' F! S" V9 X0 Y
        {, p9 I. ?  X9 e8 o3 ?+ d) L
                .active_low = 0,! X& E* r0 O. ^' p& f
                .gpio = DA850_USER_LED2,# a( H2 e) A; t
                .name = "user_led2",
4 y9 X% A* {2 q0 R                .default_trigger = "default-on",
  K/ F, o* L) V+ P. v4 Z        },
* p/ R( P3 t# {; J        {
% P; H- W* M# |! w4 ~+ j                .active_low = 0,( @# `3 o1 o- n+ ^5 {$ ^2 e- l4 y: i
                .gpio = DA850_USER_LED3,( I# p- q' N8 s1 A, F
                .name = "user_led3",9 h& |) \" }2 T$ K: n- h$ {' t7 Z
                .default_trigger = "default-on",& d! E6 \" h0 g9 [) d, p4 P
        },% V$ d6 ?# j0 x8 J
};
% I3 g6 H% }/ e( ~
2 h! a; Z( n& J) F; k& }static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 V2 c( D1 V' v, S
        .leds = da850_evm_tl_leds,
. N6 r% X- k! X        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 u1 _* ^, A9 |) W% ?; |9 p};% h4 d6 U+ }  i! E& w. m
5 p  J0 t+ e8 \/ g8 d5 W( P
static void led_dev_release(struct device *dev)# N+ D7 o9 u9 k& X) O( Y. G8 U  f
{- u/ ]  @! s. I( c) v7 V" u$ o! b
};
% H/ U9 d5 o2 A6 i- s  O/ Z% q8 t; n$ |6 v7 J! W
static struct platform_device da850_evm_tl_leds_device = {9 o. \$ B4 s0 H2 h' E# V2 P# m
        .name                = "leds-gpio",
" ^1 s+ @. j( l        .id                = 1,  @" J0 w  X! P6 U/ |$ R
        .dev = {
, E; W9 A( E+ n                .platform_data = &da850_evm_tl_leds_pdata,0 a  |7 o2 _' F/ d! _
                .release = led_dev_release,
( e0 G& o3 z+ F. w, O        }4 J$ w& \6 d( F6 o! H4 g% B
};% e0 o- V/ M, [* {3 a) B8 ]
) Y: p& g6 b1 x5 [* s
static int __init led_platform_init(void)) e7 [4 U, y. v( E2 {* ?
{. h% ?8 M1 h& H1 M, ]3 ^
        int ret;& }( |8 }9 E0 _) n! l
#if 0( T# J0 i1 o4 b; k, t
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ d3 W/ F7 F# M" R5 R6 R/ B        if (ret)
: F/ B3 ]! u7 A, }3 R+ W                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 e& {1 r6 k# Z3 o                                "%d\n", ret);
3 T3 H. s( t; {: V) g#endif' M# s. V9 P% G+ C! ?
        ret = platform_device_register(&da850_evm_tl_leds_device);# n/ S4 A6 B$ ^: i+ o
        if (ret)
: d) p' B" m% F; N                pr_warning("Could not register som GPIO expander LEDS");
; J* ]- H# e( }        else- ~7 D# b; W* F  A( _: a
                printk(KERN_INFO "LED register sucessful!\n");  V- k- h' H) H' T" `5 p+ D7 e& x8 J

+ h3 G+ V" z) a) Q+ Q8 v) \/ G, |1 `        return ret;
0 i* Q2 ?& \0 ^/ W" T}
; @- N% \# \& }% j4 y# n, i/ a  W) v  p1 j4 S
static void __exit led_platform_exit(void)& _. z, N5 `/ j; c+ v
{
" t8 \9 O7 M4 N% J/ h7 A        platform_device_unregister(&da850_evm_tl_leds_device);9 q9 H( i, O1 u( W/ E! ]
- i, V2 ]% g$ E/ i; h7 N
        printk(KERN_INFO "LED unregister!\n");
, m, P* G( ^% n: k}0 R- t# e+ p1 x% K) X
3 M3 ?0 m: `6 v
module_init(led_platform_init);
$ f- \8 P$ }* J. m1 S! e( R' M4 qmodule_exit(led_platform_exit);* t% K$ m/ n+ P! h; k/ Z

, D6 T! u1 N( i! O5 ?MODULE_DESCRIPTION("Led platform driver");) X6 \+ ~2 e/ I$ z
MODULE_AUTHOR("Tronlong");5 g( _) w' ^( M# ^. F: E! ~
MODULE_LICENSE("GPL");
0 Q1 Z4 ]+ E4 v# q$ [$ I6 j, L7 w$ @. C! \3 @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 17:33 , Processed in 0.040932 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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