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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# R( G' y/ m, {# F& [5 H
#include <linux/init.h>
! a9 E0 c6 p8 p, N/ n+ b( L#include <linux/module.h>8 Z" N7 `$ c8 r. d+ n
#include <linux/kernel.h>
  l5 R$ z$ g" Z#include <linux/types.h>
' b6 B. {  D- N5 U/ X6 r2 f3 e#include <linux/gpio.h># b1 R) N4 k$ Y- a* k: {! o
#include <linux/leds.h>
' F3 `6 S6 `& s& x/ B* I' s#include <linux/platform_device.h>0 I! I* Q2 q$ ?1 V+ z

1 v. L4 }2 P5 d. E" g9 o& {#include <asm/mach-types.h>
( n; B7 B) r$ G. R, q# L#include <asm/mach/arch.h>
/ J# p3 A3 T# Q. ^% @#include <mach/da8xx.h>
% g& I. Y$ q0 l#include <mach/mux.h>& V6 g. I: {. F' Y5 N, G$ {
, D9 v" R; B4 e6 k6 a
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 ^5 H! l# e/ I#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 {6 i& g. g$ Q) U
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# J5 j# o0 e# o! `$ _
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 S  V/ w4 c1 `# @: R4 C
3 g& E$ D9 c$ a% m$ C# B
/* assign the tl som board LED-GPIOs*/( a7 `& {1 }+ M* F* Y; I" n
static const short da850_evm_tl_user_led_pins[] = {: }% i/ z7 V8 N3 u
        /* These pins are definition at <mach/mux.h> file */% k" q( z) w8 k! R% v
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ r+ B7 u5 N; U$ Z2 r* B        -1% n) v$ a8 p9 p
};0 v4 ^9 Q$ `1 o. F5 H# z) N

: {. Y# F8 @% ]) K6 ^6 W% sstatic struct gpio_led da850_evm_tl_leds[] = {
; h2 K: D5 F4 T5 I3 X4 V        {
; n2 u% l6 f# V& q$ Z! o                .active_low = 0,# c7 ~6 g$ v  K0 |2 U( l& x) c
                .gpio = DA850_USER_LED0,
4 i% s# n$ v. D' I% {- U                .name = "user_led0",
& h: V" `3 C" U                .default_trigger = "default-on",
5 w3 ]# k# N+ r# `! h        },
& s" J1 ?: M4 `6 d0 k6 n        {
. f! O: j3 J+ L; v& }                .active_low = 0,5 v, L# w9 n2 r. B! P" P7 I: W7 c
                .gpio = DA850_USER_LED1,
& f2 F' @$ E3 }% E7 F9 k                .name = "user_led1",
) P: J: W4 |3 u; }4 [- j                .default_trigger = "default-on",* H$ |. b1 ?) N
        },2 i6 X: U9 s. K. y+ i+ l! }
        {) P: D2 Y$ k! o! U
                .active_low = 0,9 i$ j2 n) ]% W9 O
                .gpio = DA850_USER_LED2,& {. Y2 A+ k7 q3 r+ {
                .name = "user_led2",
. j- f0 j; P( q3 U: n2 ~                .default_trigger = "default-on",
8 A% u- ^- m9 t5 J; ?4 I  X  v6 W, L        },
4 v$ I6 s  Z$ O; i5 r* D  T        {) F% R  x. l5 d  Z( U9 C! m
                .active_low = 0,
0 C6 T! F- W) }. c- Y2 y                .gpio = DA850_USER_LED3,
  _; p/ b! [5 |  ?2 m+ l' N: y+ w                .name = "user_led3",1 B* _* B& j6 m/ [8 u( \. w
                .default_trigger = "default-on",8 O  y2 d7 ~3 T: C3 U
        },, x9 m9 A/ X8 y: R5 ~4 Z, Z5 n1 e
};+ ^9 K$ R6 H9 l

' d0 u. M( H4 ^' ~6 nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 c0 ]9 |( S* n; k6 i
        .leds = da850_evm_tl_leds,7 o" Y6 p. O, W; k
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ b& p2 o( d# H6 w: e- o& Y( F};, o; {' M  y7 \! g) Z& ^" x
: K+ d* c8 k% p4 s+ G- y
static void led_dev_release(struct device *dev)
( N0 ?0 v. e2 `& v& K{
) ]# |  j+ y, [8 e9 ]( t};' X$ _3 M  F7 s4 D3 o
1 I+ J. ?8 y+ r/ @5 A! @
static struct platform_device da850_evm_tl_leds_device = {; {/ p+ L0 Y) R+ T
        .name                = "leds-gpio",& Q9 x* F; Q( R4 w6 ^! ^% _7 S
        .id                = 1,
% L0 T3 [! g4 o. m        .dev = {3 _2 q8 F( E3 U7 _6 u
                .platform_data = &da850_evm_tl_leds_pdata," X# K- p: T' f$ y( t9 o
                .release = led_dev_release,  F" ?" H2 _3 k# u
        }
* j( D; }( y9 v1 @6 t  \% i};
: b# Q4 y9 e6 H# y+ i  \9 o& Q+ I
2 I( D) _$ R5 K; k! z) M' Rstatic int __init led_platform_init(void)
$ h. _$ a" c/ Z{
! s! L7 g3 s0 w1 V- _        int ret;4 J+ p' Q: k3 E/ o1 ?
#if 0
+ h2 R* {% n, ~& f" h- {( C        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' U; Y4 q; M" x( m        if (ret). _) s- b( b) A4 E: ]9 C
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# a  M5 H. l; V+ f3 L; T                                "%d\n", ret);, i8 u6 L" y0 e% N
#endif3 r. t8 |- Q8 h9 f7 h3 e2 C% m
        ret = platform_device_register(&da850_evm_tl_leds_device);
# C! S/ e# Q: B        if (ret)
, \7 W% W/ q/ D                pr_warning("Could not register som GPIO expander LEDS");
& k, G9 t5 [8 U0 Q4 N        else
" c" W, K* ^* ], M8 }                printk(KERN_INFO "LED register sucessful!\n");
- t* @' p+ y/ N  q+ v" E9 E
1 Y' b8 @: ^' ]$ M2 ]  D0 v        return ret;+ j" V- `7 I: C4 _
}
0 R  G: d- E6 ~( {0 R6 O! d
  Q! k* {& |1 q4 F' ostatic void __exit led_platform_exit(void)1 p& \( M: t6 l5 g) _
{
" `- B3 x; G2 H* ~2 J4 Z$ s        platform_device_unregister(&da850_evm_tl_leds_device);
' c# r7 J3 p7 g5 F
# }, F6 I+ {( t5 N        printk(KERN_INFO "LED unregister!\n");
# M' K/ w* |  S% s2 R}/ T$ N7 H2 X" O; L' K5 N8 S
  S! O# a8 ]  ?; h1 G& q1 _) a, ~
module_init(led_platform_init);& V; r. z5 m( Z0 S' n+ z* W
module_exit(led_platform_exit);: _! \- t* e7 M, n9 N8 A, b
1 w) n$ u9 s* Y! d5 \1 @( v
MODULE_DESCRIPTION("Led platform driver");( _( C9 g2 b9 m6 W( y3 v
MODULE_AUTHOR("Tronlong");
% V- j4 e, m# z; c2 `MODULE_LICENSE("GPL");
! J, _" [/ q4 j8 x
* f% S3 B8 X) i7 H; u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-24 01:09 , Processed in 0.039718 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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