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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- ]% H7 Y' X3 A, R
#include <linux/init.h>0 Y* w) M' K- t! D: M
#include <linux/module.h>+ U  H' I  N' l$ o& ^' c& Y/ z! u; D
#include <linux/kernel.h>7 B+ c% Z5 N; u: _0 y" ]4 g
#include <linux/types.h>
  N$ V/ L2 y2 t" @#include <linux/gpio.h>
! s8 V  }6 f( k$ X+ u( H5 C#include <linux/leds.h>
+ R* e: t. C0 \; F/ U/ v#include <linux/platform_device.h>
4 |/ W! ]' ?/ l6 q; P
! u' m. R# |1 i2 K5 f/ [* i6 r#include <asm/mach-types.h>
. p3 M7 A6 _( m! l, J, K#include <asm/mach/arch.h>3 f2 ?# _- M4 y4 B
#include <mach/da8xx.h>
' a) L  r9 d& c, @#include <mach/mux.h># W9 ^% m# ]9 B; W$ X5 R+ z
9 F" f6 Z) p! i" @7 Y, ^4 v7 S$ O
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% q% V$ B5 r9 H& {#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 E  _: v$ s! A% U: G0 b#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 I% X& r7 I! D( {( s
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! o/ r' z7 U( r" J4 j$ A

( _6 H/ W  ]1 d% p- ]# x: T; J/* assign the tl som board LED-GPIOs*/
4 l5 |- K, [  D1 A# y/ `0 Nstatic const short da850_evm_tl_user_led_pins[] = {
/ W/ B: T7 w5 c; Q        /* These pins are definition at <mach/mux.h> file */
8 W, S. n! ]& F1 `" }$ y3 F( n9 P        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 a: @- L" {, U1 g
        -1# A: e2 {4 P8 j3 d+ R
};1 o# a" {) i$ }; R3 E3 t
2 E4 n! N, z2 a9 r0 ]8 V
static struct gpio_led da850_evm_tl_leds[] = {
' m6 U% Q1 u$ _" i4 g; Q# _        {  e$ ]( S( t; w  y2 }7 H$ P
                .active_low = 0,
" V7 I" g. t: Q; J. U6 {9 J" Q                .gpio = DA850_USER_LED0,
. W* q, W2 M6 h                .name = "user_led0",
$ L- f$ S7 v+ s) V  [4 s# H                .default_trigger = "default-on",  p; P4 a+ s( ~9 ?; u
        },1 `) }( \2 J- |4 U8 B8 v, @
        {
% d3 N  A' G2 W7 x$ a                .active_low = 0,
# L1 x( g& \8 ^+ J- q6 s                .gpio = DA850_USER_LED1,/ J. H0 c$ e+ i9 s4 U2 w! Q
                .name = "user_led1",
. i! Y/ U3 V  ~* G7 K                .default_trigger = "default-on",( P) q) L' j4 c! n
        },: Y' S9 b6 Q- X/ I/ p1 m% }  z
        {$ n& O" N' J6 {- W" e
                .active_low = 0,
) E1 _! z3 f3 o$ L9 t; n- W4 S                .gpio = DA850_USER_LED2,
3 x0 I. I0 ~" \/ t                .name = "user_led2",! q- A% ]9 F( a; t% D
                .default_trigger = "default-on",# f  U& i2 G! I* N
        },. [! P& K# B; t0 P- }
        {; Z3 a# u$ N! a
                .active_low = 0,. ?/ [' @0 Q' N7 ~( V. B
                .gpio = DA850_USER_LED3,$ s, f  y1 L& X! L2 ]: }, X) C
                .name = "user_led3",
$ F4 E& p2 p9 _: _$ ^4 j; {& l5 G                .default_trigger = "default-on",
# q7 t/ ~2 {' i" Y; ]# Z: z        },% ]( r7 R9 K! {+ r- [0 |+ h  {
};
! V  L4 J% r0 D7 j: k' Y' G: a6 z9 m6 `
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ o% x3 g1 [; i, Q6 V
        .leds = da850_evm_tl_leds,) k( p" v& f; o8 ?4 m' X
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' N6 k& r1 M8 b  j7 }) }  _
};/ d7 J8 o4 Q/ F
; ]  g3 [% }9 i) a2 a+ P- }3 e
static void led_dev_release(struct device *dev)+ |: S3 q" @0 W- d6 d. n' w% Y4 G2 a
{! r- Z' m+ |, [, B5 C' D! w
};
) _" J/ f: J. W3 @! D. B- I
# u; P. c) P3 S/ I. Rstatic struct platform_device da850_evm_tl_leds_device = {9 S( Y+ m# {) Z* q% |
        .name                = "leds-gpio",! @* c$ k) s8 B* q. k
        .id                = 1,- D" A# Y9 Y, e1 M$ `: y
        .dev = {8 O5 m5 U" ^* Q: k3 @
                .platform_data = &da850_evm_tl_leds_pdata,
1 L( u; l$ b; @; t' F. {: D                .release = led_dev_release,4 s& h. a/ |+ t$ P6 P
        }! p8 y2 p- f  n% V
};. w8 o8 `! O9 J3 N1 Z

% {# Q" W7 [( T4 v3 E4 O; Vstatic int __init led_platform_init(void)0 t; a  o% i% B. n
{
5 ?4 a  w3 M' ?: l        int ret;- W& k% u% c7 ~  ?
#if 0
( b( g) w0 @& j. y) d5 b- c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) t3 z3 x# Y7 E$ e, q
        if (ret)3 m4 w7 @7 R" s) i" X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ F* z+ K7 W9 b: |2 J9 ]6 S" f                                "%d\n", ret);( [3 V0 [4 [' S1 u. ~7 E
#endif
0 M" [$ b3 i+ k( z9 w" I        ret = platform_device_register(&da850_evm_tl_leds_device);
! D  l9 I( \- m9 K' u! p) g        if (ret)
0 L0 [+ v8 k! ^) l5 N( m5 s$ b                pr_warning("Could not register som GPIO expander LEDS");
. p8 V1 ?# K- Q/ c6 R        else  i. u, n- |# k/ U/ h
                printk(KERN_INFO "LED register sucessful!\n");9 M! i* p2 B' u. Y. \
1 _2 l0 P( M" ^
        return ret;
. X+ d0 S! X9 I: v) l}7 `& _+ B+ j& n, q9 V/ J0 M

$ e3 ~9 K* R# g# E3 K% P+ wstatic void __exit led_platform_exit(void)* L" v1 |) M; {; b, l3 Y8 n; p
{
; e1 p7 a, R, A2 [7 F, D6 ?0 y% o- u        platform_device_unregister(&da850_evm_tl_leds_device);
/ K# N. h0 P" A: t! e' @6 G9 p/ [. a$ z# r' @
        printk(KERN_INFO "LED unregister!\n");
3 L7 P, h/ W9 S5 {8 {}" _+ ~- S0 I6 n: K, c: C/ o# S- i; _  ~
! Q8 @- ~0 G+ `- J5 u
module_init(led_platform_init);+ c% J, V/ R  {% e# T0 b
module_exit(led_platform_exit);
9 e4 h# h$ A/ X7 ?6 A+ p' p6 H- [- @* _/ M. _, F( d+ x
MODULE_DESCRIPTION("Led platform driver");
& w1 e. Q* m+ F" ?MODULE_AUTHOR("Tronlong");
7 U2 V3 ^6 Z( _7 n8 M& p4 h, gMODULE_LICENSE("GPL");
0 w# R: h+ \2 A1 b1 E1 D3 P# c" b+ g* ?$ u5 V+ n2 A' }! l: f( `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-30 17:16 , Processed in 0.043804 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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