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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 R: T8 N5 t' E9 {$ W: M
#include <linux/init.h>
. O( u3 d5 O( ~% N#include <linux/module.h>1 {# o& _( x% C/ O3 \8 s
#include <linux/kernel.h>
7 k! u4 x$ a/ p6 a( ?#include <linux/types.h>$ e% _  d1 j+ O. ]0 P. O4 _2 B) _
#include <linux/gpio.h>
% p: q4 f. c7 P# ]; n8 P#include <linux/leds.h>
% C4 r" D, M7 ]. X  x) z#include <linux/platform_device.h>; A( h" f7 O' ?! P. C' b9 P8 a/ k

1 x* o, l0 S8 i9 P/ }8 I#include <asm/mach-types.h>
, \1 u0 \: {: I- g& U7 N  p- B. X#include <asm/mach/arch.h>& r: P% l# t$ |' V. Z
#include <mach/da8xx.h>( y" B& O7 a2 N( g8 P4 j
#include <mach/mux.h>
* C4 o# U- b; w( R* C- j2 w
* {/ \  W2 c8 N' A3 x0 R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 k* c& ]2 q' C#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 z' ^& f9 f' c/ |" i" d
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- f8 r5 M$ j& v* R& p
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 r) d' }- p6 Q+ b5 X! C! w
7 u: n% q& `/ A, v7 {/* assign the tl som board LED-GPIOs*/4 X0 ^. m' \! C5 K: B* `* U$ p0 l
static const short da850_evm_tl_user_led_pins[] = {
4 q# `, o  }! l2 B, `0 g        /* These pins are definition at <mach/mux.h> file */
) A8 `4 O0 M$ y# L2 E        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 E5 \! O( U8 T' a! [        -1
7 m' n& x! v4 W, B};2 R7 g& m1 i0 @4 ^4 I/ q4 t- E
  ?7 b8 m' W+ J0 H9 @5 A3 ]
static struct gpio_led da850_evm_tl_leds[] = {; L6 ]! }4 c. l7 i  l0 s8 G2 S
        {
, Y2 s. O9 y( q' G                .active_low = 0,$ M  y& P6 D8 {  i8 ?2 h
                .gpio = DA850_USER_LED0,
1 |$ L. U0 A" j3 L* P                .name = "user_led0",
4 X- |. q4 Y$ R+ B4 c                .default_trigger = "default-on",
/ B0 W) _4 S0 t: t3 N; d0 ]        },) R4 O- Z, g' _' o3 J1 \
        {
$ J( ?0 x& L! ]                .active_low = 0,
, \$ b$ }' _- s  F( y7 @( i" _: x                .gpio = DA850_USER_LED1,2 H* ~6 J/ L8 X6 t
                .name = "user_led1",: \2 t6 J/ @& N. \3 {
                .default_trigger = "default-on",
; N/ s# `& A: |- c" e7 ^        },! i1 Y2 |& l: m" e7 ]# Q' s- W
        {) E! g4 b1 G" K" |8 B) [* g7 j- b1 e
                .active_low = 0,
! Z$ T) g0 K( j/ z                .gpio = DA850_USER_LED2,
' h0 [2 T& g% A9 \, H; O                .name = "user_led2",
) B- D# V1 l0 B$ F                .default_trigger = "default-on",4 c4 X* ~0 v. r3 _# f3 j
        },  p! h7 j- ~0 ~: a3 T
        {* d% f& }7 _: x3 b, }) y
                .active_low = 0,
$ a, ^- M5 s- t; R                .gpio = DA850_USER_LED3,
6 q" D; M8 _+ H  s& V                .name = "user_led3",
! @9 `. u; p! [  z8 a, Z4 c# G                .default_trigger = "default-on",. k$ C4 \3 J, U! N9 `7 m6 @* G" l
        },
5 t7 O4 e* n- u4 X};" d: j2 u: F/ y0 J9 G+ J$ I
+ H, b5 Z% n7 U7 K. ?
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ S! s/ L+ B5 I6 B
        .leds = da850_evm_tl_leds,7 c" A& |0 Y; O; P4 P
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),7 H5 t/ A. y/ U- t. I
};
$ n3 h' A2 `$ v( Y8 @- Z8 k( u
) [0 [4 H5 l) k- P' x; g" T' ?static void led_dev_release(struct device *dev). R8 q( H' h* \# ?( k5 }2 G
{+ m  _4 m' [9 U# l; j
};
3 S2 v0 f# d/ k  d' h
5 x: |3 a  `; C: Q6 Z) k4 Q( f6 n- nstatic struct platform_device da850_evm_tl_leds_device = {$ C" Y  e( _+ i& ?1 [2 k
        .name                = "leds-gpio",9 \" L4 @$ S$ _1 t
        .id                = 1,
* R2 R4 \0 o4 @, I& ]        .dev = {. m' c4 B5 k& M6 J: O5 N" Q. @& o
                .platform_data = &da850_evm_tl_leds_pdata,
3 {9 x4 N& l; h. }                .release = led_dev_release,3 l$ t9 ?8 l3 {) v1 R
        }% q& ]( `7 l- k6 D% d/ m+ V
};
& f% e/ X' F' V3 y1 A% v& e7 W& `) P9 F0 I& m
static int __init led_platform_init(void). v6 k5 L- e9 f9 N
{5 Q8 ]9 v) o8 I7 G) T8 J* u
        int ret;3 r# z3 }( Q6 c: B# n8 r9 X
#if 0' c3 r0 w, x: p" b% p: ?& h# D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 j! m+ ]# ^0 e/ b. {
        if (ret)
% x; r) l  i; z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, P8 x+ |1 j4 i% m, Y/ I                                "%d\n", ret);5 E4 j, O$ s( T4 N# Y; u
#endif
" w4 W4 R8 i2 J9 m5 O        ret = platform_device_register(&da850_evm_tl_leds_device);0 q; z. z0 @/ H! Y9 A" k
        if (ret)
1 ]; N/ Z4 ]! k# O- I" B                pr_warning("Could not register som GPIO expander LEDS");
6 [: u. S: g+ g$ S0 M        else: h$ R( F' x4 i( {' q9 a
                printk(KERN_INFO "LED register sucessful!\n");& _) R( }8 D6 `& t
- d+ c: Z6 {6 F- l/ |& u  A
        return ret;
! n* W, c" I8 e1 [3 Z( V}& M- _0 B; |3 M
$ A% G2 h# c1 v2 K5 O) E6 a7 p) f
static void __exit led_platform_exit(void)
; y+ B6 t. p: X( W9 M% ]9 ?1 t{8 j) s7 U! K6 p9 P3 `+ U' ^
        platform_device_unregister(&da850_evm_tl_leds_device);$ D0 U4 }2 X2 m# r7 V1 a( S

% ^. Z4 \! E" o- f+ z) j        printk(KERN_INFO "LED unregister!\n");
( R9 E! C/ c( w# v* \# Y% G. Y' Z}3 G' M0 n# o' [0 ^8 z

1 {1 ]- p: C) V: kmodule_init(led_platform_init);
$ W2 u5 B/ U  qmodule_exit(led_platform_exit);  j$ p3 B' i( G. L. r9 Q7 @0 H

1 n8 X% Z/ ~9 [1 {7 X3 X4 bMODULE_DESCRIPTION("Led platform driver");: j! K1 b* @* V# ^
MODULE_AUTHOR("Tronlong");6 f6 E$ W  F8 Y' E  i+ M$ t) |! o
MODULE_LICENSE("GPL");* p/ ?- x% x; u: Z. ?6 }  m: N3 `

- H0 E$ _5 t* }) i& ?) R3 L: @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-4 13:25 , Processed in 0.039079 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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