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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 @. w- o7 ~" d  Y$ l) ]. v5 {#include <linux/init.h>
) O5 m5 t" @) ^5 t# l8 G/ G#include <linux/module.h>
; E6 E7 s/ t6 l8 \- Z. E9 G2 ^$ v$ P#include <linux/kernel.h>
; X' @) h8 x4 R/ b; [#include <linux/types.h>
/ d# m2 {* F7 h2 \4 Q) M1 o& ^+ e#include <linux/gpio.h>
( o' ^  ~# r1 }3 X$ m#include <linux/leds.h>
5 P; H1 Y0 p2 U2 B#include <linux/platform_device.h>
/ \  h5 \6 K, U4 O5 Q2 \! Y* N9 Y
#include <asm/mach-types.h>
- n" |! E- o0 ~2 r#include <asm/mach/arch.h>: C% s* n& Z2 t. k/ h* i: H
#include <mach/da8xx.h>+ O7 G, a& ~- S5 `8 p  k0 L. h
#include <mach/mux.h>
6 F$ V# }7 ~6 H3 g" \, V7 }8 D" F
5 K+ |. V" E- N% ?- B  D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 O8 q( ?$ x/ u" |& O4 q- o2 ^
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 K9 A" Y/ I2 {6 C$ N( A#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' `) q0 s+ ^, n& ~8 ]3 q% S+ ~
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 X$ D" R* M0 ]8 J6 X  d4 a& Z! I. d% N
1 R9 \3 ?' t9 |. H+ _# M/* assign the tl som board LED-GPIOs*/
# _* E4 Y  Y+ m! L* D. o+ Istatic const short da850_evm_tl_user_led_pins[] = {' a% a" Y% t+ O6 P4 j. C, q& n& `
        /* These pins are definition at <mach/mux.h> file *// s/ U& N# Z4 Z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" J% R, I7 i- @* Y$ t, D        -18 x) a+ F" D& T" G6 r- [
};
4 [; S! J+ l$ d6 I
: x2 U  O* T7 x* G) ]static struct gpio_led da850_evm_tl_leds[] = {
" x0 H. m! W; X' Z        {
* N2 _0 y2 e! D( L* b" @, O- x" [' b                .active_low = 0,
7 S& v* A- u0 r6 v: J                .gpio = DA850_USER_LED0,
5 P$ I! p2 B# Q8 [+ b$ \                .name = "user_led0",4 K0 R6 ?# U; o. u' g
                .default_trigger = "default-on",
9 J' p- O  S5 j2 O        },4 t- V+ ?1 i- `- H( x
        {2 _4 J  w; ^/ b8 F/ j3 ?
                .active_low = 0,
9 K5 b2 A6 F( r  S                .gpio = DA850_USER_LED1,
' y, Z" U4 I  W0 r( h                .name = "user_led1",' x4 i2 l% Z3 a
                .default_trigger = "default-on",
' D; x/ s3 C! {        },7 w  w5 N# x- @. p+ j! j
        {
. x) R! r; X7 g$ s' e+ ~- |% c                .active_low = 0,
! y5 V- ?6 l# @) u- h: W6 v                .gpio = DA850_USER_LED2,- R  E4 s( @: e9 A  `: N
                .name = "user_led2",
7 W2 I' \: O* K" G1 L$ q4 j                .default_trigger = "default-on",
; Y- Y% J! |$ `+ e1 h        },' G, q, `9 Y/ K
        {
: @* N; A3 O- w6 \! s                .active_low = 0,% j1 O+ L- v# O: x+ R! m7 y
                .gpio = DA850_USER_LED3,: E- Z# A7 W7 F/ Y7 V
                .name = "user_led3",
! |& X( `4 Z' P) t                .default_trigger = "default-on",
% B/ \) X8 r6 {2 z        },1 }6 G7 M) b6 i- K
};1 ~2 n9 k  X2 {
# R  u7 d& W8 d# _/ Y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' g8 ]) P. ]! L8 o8 o4 q5 u( Y& a4 y2 C        .leds = da850_evm_tl_leds,
6 P1 M% W% k, Y* E3 w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: @5 R0 F) `% v* F
};
8 X" k2 U- V; S$ K. r
' [& K: h/ Q3 z; ustatic void led_dev_release(struct device *dev)+ g/ d8 \/ h2 u: {
{
- G4 ]9 Z. K; P/ _8 R};
( H! T. r! t# e5 d
3 l$ M: z& ^" m- M5 `$ j* b; y# Nstatic struct platform_device da850_evm_tl_leds_device = {: N& c9 [% A/ {' c2 ]- Z& P
        .name                = "leds-gpio",
3 n/ e, E! ]0 y        .id                = 1,
; G/ q) T5 H: g- {7 b* ]; K        .dev = {
/ O# y* {5 W1 B3 M* v& A7 N                .platform_data = &da850_evm_tl_leds_pdata,, a, P! A) n& K. z& n% f
                .release = led_dev_release,  t2 D, W3 L! j/ {# b8 o
        }
  [% ~. j) h* F; j' F$ f  g};5 @: W4 P/ G8 P( j8 \* x2 l

1 I9 y: i( [- ~8 J: ^4 vstatic int __init led_platform_init(void)
* X0 m* k& n7 a/ G' m/ @{7 Q! M' y- K  N
        int ret;
' z7 p9 x0 H5 g#if 02 t. X* B; r& H0 r& `. T: C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, t% H+ x, e& W. X! u- f        if (ret)
; R5 G. @" l  o3 u% j! s4 D' d                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 A* S$ N: h1 z; h! F
                                "%d\n", ret);: L" l* V0 l# c$ q+ m
#endif# G/ d0 x' H" Q3 v- i5 c
        ret = platform_device_register(&da850_evm_tl_leds_device);$ `  E* m0 G! C9 A
        if (ret)( `8 S* a4 y7 A# p
                pr_warning("Could not register som GPIO expander LEDS");
! S# }4 r/ J# t        else
3 D4 y+ c8 E( J' w- s. x& X                printk(KERN_INFO "LED register sucessful!\n");# {2 i- t' A9 m

0 q+ {4 B$ [2 {% w' j. c        return ret;8 {2 E( A. I& i1 a: U
}
- ~" }; y0 d6 L. a8 \3 n
* w% m. J" k, l/ [$ Nstatic void __exit led_platform_exit(void)7 Q- Z- z+ o1 L- s% @' Q/ n
{
3 p+ |/ k( D% Y& N/ J* M        platform_device_unregister(&da850_evm_tl_leds_device);
" B; E$ [6 p5 i% \6 G) I
1 W. J. A" ~$ y; r' C9 [        printk(KERN_INFO "LED unregister!\n");
4 a0 J; g6 ~: K" f}
3 X3 e% b$ r$ B4 Z0 v
! h! X" o: z* W: |$ A. o3 e6 c# Rmodule_init(led_platform_init);* v7 q) a3 j$ K  P$ E( F
module_exit(led_platform_exit);
* j; K3 W) c% b8 T0 h- j! j
  G+ T8 l* d5 [, n0 ZMODULE_DESCRIPTION("Led platform driver");
6 L" E9 ]# u( s( R) n8 tMODULE_AUTHOR("Tronlong");0 `# Q/ [3 u; G3 H. Z) y% e
MODULE_LICENSE("GPL");
- z/ O  S1 g8 J
5 J7 i( @; ^! L3 \  W8 M8 p; _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-9 08:11 , Processed in 0.046507 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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