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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; U3 L9 }, @5 h2 p: s- p
#include <linux/init.h>- ?: u/ p2 G1 |$ ]7 ~
#include <linux/module.h>. S; u$ K! z( o8 W6 x. M* F
#include <linux/kernel.h># h* L8 m0 |( r' Z
#include <linux/types.h>; E* \; d) c2 I* N
#include <linux/gpio.h>9 D! ~& i; E$ y1 J% F
#include <linux/leds.h>
) ?! f9 W$ }  L% F# g#include <linux/platform_device.h>) p* Y& n6 k+ B* E. f% v3 F; d

4 d* j; v! C1 j0 I. N, ^#include <asm/mach-types.h>) h. V3 ]" K2 r  q: M9 s8 ~$ D7 [
#include <asm/mach/arch.h>+ ^2 y: j2 E. J+ F
#include <mach/da8xx.h>
( E# v' W# Q* N8 k#include <mach/mux.h>7 y% l: ]9 C% P, ^" A/ i
3 P. s# [6 r' x0 P: t* y8 r/ W
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! X1 f. [! I2 l) q0 P
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( n( o4 o$ y* c( w
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ ]9 m2 @$ o4 m: u/ M- y5 a
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 j. O. N, O# f! B1 L' ?
) z% C4 [$ d. j$ q/ P) Y3 E! {/* assign the tl som board LED-GPIOs*/0 H9 }$ E+ X, g$ c
static const short da850_evm_tl_user_led_pins[] = {
( s7 _7 \1 R: D2 {' Z        /* These pins are definition at <mach/mux.h> file */- L0 p2 j! s- o% C8 j
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" y7 F( o  u. i0 `+ ?% ?3 C$ u7 S        -1
' d5 V6 W) _5 _5 G: ]* ~};
  h$ v3 \. ]) e9 y& p, \$ e$ V$ @3 h* L$ q9 L1 p
static struct gpio_led da850_evm_tl_leds[] = {& w; w! b$ o- P
        {
, z2 u0 s  ?( b0 T, U* J7 _* X                .active_low = 0,/ F5 \$ n* c$ p! n, f+ T
                .gpio = DA850_USER_LED0,: a/ m! L  m  \9 H: Z% ~
                .name = "user_led0",
, Z; ^* d' m" g. Z# a3 S$ z, z9 P                .default_trigger = "default-on",/ X2 _# x5 P$ ^3 K7 e" u2 B
        },  {7 V7 s# a/ D. b  ?( {
        {
7 v1 C7 r8 `7 q# S$ `+ |                .active_low = 0,' ^. i( d7 ]$ ?$ P2 p2 R1 U8 {
                .gpio = DA850_USER_LED1,, H" p0 v, y8 R, [6 [1 r) i
                .name = "user_led1",+ C! o% ^* A! @
                .default_trigger = "default-on",6 h% i% `: r3 P5 }5 U2 R& q8 l
        },
/ b! {5 v+ ]& p7 ~! O2 t        {
( G/ A" d5 q4 Z: Z7 k# H' k                .active_low = 0,* N* t8 H2 I) m- X2 A
                .gpio = DA850_USER_LED2,
$ C' T8 d! B# E/ f% p                .name = "user_led2",, I- r9 J8 u; f5 N) E1 X
                .default_trigger = "default-on",( G1 ^9 F8 W  Y0 j$ z2 O* X
        },# Z0 w1 `; D1 C+ E( t
        {1 Z7 N4 }. I+ k/ x" L+ \( J7 b
                .active_low = 0,2 {7 q* l. l9 |! s) b, R  D" A' [
                .gpio = DA850_USER_LED3,
0 t( t! Y0 C' F. Q6 e% m                .name = "user_led3",
* V1 \# U. h, I& ~& t                .default_trigger = "default-on",
! R& W5 }0 o& G        },
( O/ V& u) k: x, }};
( c4 u+ y$ x4 y0 v1 R
9 j1 w+ i( O6 ^, [! S$ Estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 H' ?6 |: I+ O" @) {# c" Y
        .leds = da850_evm_tl_leds,, |, ]4 V" `. d0 ]% i: n. w! S
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% ~, k5 K' ~. v6 H
};' Y  u8 g3 ~0 D6 S! h
! T! m* x4 J* z* U/ z. G) l% B
static void led_dev_release(struct device *dev)
- Y% ^! @* X  k% y" u% D{1 ?& ]; D+ v" U6 k  O& F
};( W9 j3 y% A) u% b" x/ `( O

+ D- x$ k4 b: T% b) j; I& A( _& ]static struct platform_device da850_evm_tl_leds_device = {
$ E' \, j. X* H/ J3 T, I0 I9 V: t        .name                = "leds-gpio",
9 G$ [8 [( v. x7 z# ?  _        .id                = 1,
+ D3 r( Y! e# ]: R        .dev = {
8 i* e" I& {4 X0 [, ]% ?( g                .platform_data = &da850_evm_tl_leds_pdata,
% v6 _. _, W# T* v" @. Q                .release = led_dev_release,5 ]$ s4 d, j! f. d. c2 e% K4 G: H
        }6 y. H( U! I2 d; |( l
};) u& u! [1 M5 m" d! e

3 c% \% q1 t4 J( c) R0 Y! g+ istatic int __init led_platform_init(void)
6 V' [8 e7 x  D3 F4 M& `! X7 q{
! ]9 F, @, b4 s2 ]$ r# h+ r        int ret;+ h4 F0 Z1 @5 b' Y3 m
#if 0
$ d! k# Z: f  ?% q# m        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- r2 Y) K& \4 a* N4 m        if (ret)
/ E+ e, ?2 N& _, o$ k7 @( j                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  W* h$ ]  ~/ c( ~3 x8 m
                                "%d\n", ret);& f2 J( L4 n6 @4 K
#endif
7 z$ q& D0 c2 n$ v  S/ X        ret = platform_device_register(&da850_evm_tl_leds_device);  L: H% ^$ z; k, e, ~: Q" P$ {
        if (ret)
9 u: Z, z2 }2 M- i, H: F! n) A1 h                pr_warning("Could not register som GPIO expander LEDS");7 E- x5 Z' Y' E$ \8 o
        else/ ~  D: y* Z  u/ Y0 _$ F; d7 o% f! r
                printk(KERN_INFO "LED register sucessful!\n");/ ]5 c; Y- k: t5 ^9 g6 B9 m
) l6 k3 |, r; P0 m
        return ret;  t. X* I: L( ~! x, b9 M
}
* D' `5 x$ q( W5 v" s( H2 ]* T1 }3 A( @0 U. i
static void __exit led_platform_exit(void)- F; M: R! g3 }) r8 G1 L
{
. O" s% s. f  c$ c5 j        platform_device_unregister(&da850_evm_tl_leds_device);; Y% R9 L) n9 j* ?
7 D8 o9 e% K- q3 h% r7 z7 V
        printk(KERN_INFO "LED unregister!\n");: ?, j* M" e# U
}& }6 Q. W+ u8 R5 K% X

4 J1 e- L" R. A! V- d) N0 [module_init(led_platform_init);: Z+ K# H5 G0 m3 _" F
module_exit(led_platform_exit);
  w( h& u7 O4 h* @" j# D+ ]. k1 n; s- ~
MODULE_DESCRIPTION("Led platform driver");4 |7 G$ K- J; E) ?& R2 F
MODULE_AUTHOR("Tronlong");/ v  y* K4 n7 @/ o
MODULE_LICENSE("GPL");, z$ @/ P" K* s6 r. P. L

2 L. l+ |/ n- A2 L/ \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-15 07:25 , Processed in 0.046948 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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