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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" N' B) n5 d, \1 Z; n
#include <linux/init.h>
- k) a% d, _" X* Z) h& r1 b#include <linux/module.h>2 q! h9 p8 G) v# [
#include <linux/kernel.h>+ w) w* i; q- W% f4 k8 h! y
#include <linux/types.h>6 Y, m: O9 x/ C7 r) s
#include <linux/gpio.h>" B& m9 F( x- j* n* z
#include <linux/leds.h>
- r7 t9 W9 T  K' e" [) G#include <linux/platform_device.h>
, y( w' ]' E0 Y3 W& D, p) w  g. ]7 p( ]# I
#include <asm/mach-types.h>
- l: }: V( n$ U" J7 t5 Z#include <asm/mach/arch.h>. ]; g' V! u3 k, K- ?
#include <mach/da8xx.h>
( g. }! C2 X  V3 O#include <mach/mux.h>  X) X' ^' \% h) H1 b5 B
. p$ V; b4 a, u. z8 T# U, f
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" z+ k) ]. o4 u& z8 ?7 ]7 b5 U  w
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): _5 z0 Y3 A$ t. L$ |2 \0 y8 ?
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): O4 t* v4 F$ p
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 S; u$ I: b8 |) z+ q
/ E) b8 i1 n& F1 F; }) ?" w! ?
/* assign the tl som board LED-GPIOs*/
) v/ U8 K4 w  P$ c1 m0 S7 M! h7 estatic const short da850_evm_tl_user_led_pins[] = {
/ e8 b4 u  C% ~! a        /* These pins are definition at <mach/mux.h> file */
! k7 R0 d+ t1 _% c) l2 H1 L, c        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) m) X/ P( _9 z, `/ n        -1
! `* t0 L- u. D- g& V};
1 {% O' |) v1 k, _1 X" j1 b" ~1 ~6 g% O6 ]0 z$ `
static struct gpio_led da850_evm_tl_leds[] = {, w4 Y, k' U& E' ?& }8 c
        {
. F8 n+ F' D5 f- N0 N                .active_low = 0,4 l9 P8 h3 N/ }- O7 w# |$ b. d
                .gpio = DA850_USER_LED0,
. H- P9 x' `& K9 f9 S7 `# M; A                .name = "user_led0",1 H& m, h- {9 c, e* d
                .default_trigger = "default-on",, @5 W7 G  t$ C" N
        },
- n3 p: a( ]" n9 S        {
& t# S8 b" M  I" p  d0 S, u! Z                .active_low = 0,
6 v$ Z- F; Q% h; d  W+ V  {                .gpio = DA850_USER_LED1,
: w" p9 G) E) l3 e" J; T                .name = "user_led1",' N; i& @* ?7 y' X( @8 J8 w
                .default_trigger = "default-on",6 ?: B  a' g. T# r4 u
        },
& f; M- n% a$ p' T) z        {4 d7 V/ D! P7 d, Y! G. o+ M
                .active_low = 0,
! X2 Y5 D' s# A                .gpio = DA850_USER_LED2,3 d: e' f. q& v: ~% Z: u5 e
                .name = "user_led2",$ b  K: J% W. Q& `# V6 L
                .default_trigger = "default-on",
* e* y% `/ `+ H8 V        },8 }4 m, g1 V( M& M$ f
        {
" X. ?7 I' m1 D7 y, u                .active_low = 0,
3 M2 \+ m; H, L; P% }                .gpio = DA850_USER_LED3,
( j, K( i) a# o/ O9 k) b1 E5 t  d                .name = "user_led3",
6 e- ^( y8 ?/ O0 C                .default_trigger = "default-on",+ \- o' `9 L- p( z- N
        },! z  v2 Q0 K3 V& g( f0 ?$ s+ T
};
4 b5 j! x. J- L% y
8 \3 x5 E; ~0 j4 Tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ n6 k( S4 {9 P
        .leds = da850_evm_tl_leds,
% ?1 `: v! |' X7 }3 R, [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% S5 E/ e( i" [( z0 [% i" n};$ L, \  U6 ?8 k5 z/ j
. C  O: U5 U+ V* }# E  A) Z
static void led_dev_release(struct device *dev)
. u- u" P7 _% ~  g{, f7 I6 {+ C& V, `1 A2 t  I
};
. g4 ?+ X$ y) b; Y: u( m" g" R. z+ s5 b8 I  ^3 E; f
static struct platform_device da850_evm_tl_leds_device = {; x+ c! [8 l" i- I- k6 \/ i" F
        .name                = "leds-gpio",
9 P, l# k* l" k. ~# s' S        .id                = 1,6 M2 e/ E/ X- N2 D/ A
        .dev = {
& j$ q& S, Q3 \% q                .platform_data = &da850_evm_tl_leds_pdata,8 Y- Q3 J* O) |5 ^  }
                .release = led_dev_release,% ~+ p; {- r# O- d
        }
: |5 u4 a* _  N7 C/ m& t- \% r# Z6 J};% k0 p- T/ O: u8 q% j
) F6 c# _5 F, e6 Q6 E$ z3 x
static int __init led_platform_init(void)3 s9 p+ C- L9 e4 b6 X4 O' ^- g3 H' w
{
) \( v- ]) }: V3 z* x- p        int ret;
: N; U5 `7 _+ U) o* R8 x) T! c#if 09 h  W- p, ]# B2 s8 x
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 Z* X+ S7 d3 `  }9 X" D9 C
        if (ret)
' @2 \, h+ ]" F% b& V6 Z$ }                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  `' [& q* d: u$ m
                                "%d\n", ret);
1 T* z8 ^  x8 \2 m- a7 k5 R- G#endif
- D+ \# U: {. Y2 T2 X        ret = platform_device_register(&da850_evm_tl_leds_device);8 p! g) p5 _9 `. ~) `: E
        if (ret)
5 r" E" j0 z# _$ N* d" e+ N                pr_warning("Could not register som GPIO expander LEDS");
  p: u& [+ p- I4 a6 M        else
  H' s4 B1 x- U5 o% t+ G                printk(KERN_INFO "LED register sucessful!\n");! ~" x; T3 J) ?8 f

, K* g# Z3 }# s' ~, I' j% y        return ret;
2 f& ?, J7 \  f}
( F( ~+ y; z4 [/ u
9 W0 d+ v0 ~8 l2 q. l5 q+ Rstatic void __exit led_platform_exit(void)
3 B( |# C9 m+ W. S9 A, V9 n6 E{/ Y% R( U9 ~+ p: V/ O, T
        platform_device_unregister(&da850_evm_tl_leds_device);- E! b! C$ Q8 j0 k, k( W
; j0 z+ [$ E3 U3 C
        printk(KERN_INFO "LED unregister!\n");
5 L( P: ~' t( A, o- O) v/ [}3 v( d$ i. u0 c) h( B
! x$ u1 f* |" I+ V  s& f$ L* T
module_init(led_platform_init);
5 {% f$ M9 n; N0 L) h* Qmodule_exit(led_platform_exit);# @% @3 \4 N+ |; j7 X
% H- z1 N/ U/ s; p
MODULE_DESCRIPTION("Led platform driver");7 T4 G6 o% r# m4 K9 G& @
MODULE_AUTHOR("Tronlong");
9 B5 d6 @! M' pMODULE_LICENSE("GPL");
6 t* r4 ^8 X, N# ^# I: \6 K& {4 V" L$ I0 t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-22 20:02 , Processed in 0.040759 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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