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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' r# R: c( E6 q! W. K" x0 i
#include <linux/init.h>! _: u+ @8 e+ v
#include <linux/module.h>; p/ r8 _. Y" Q  n
#include <linux/kernel.h>
+ i7 ^  f4 N( {#include <linux/types.h>
" s) f) e1 |& ^: M#include <linux/gpio.h>
8 Q3 ~( O& T, h, q1 O#include <linux/leds.h>! g8 c+ P. _$ j( Y+ R0 V$ _( G
#include <linux/platform_device.h>
9 B. [8 `: A0 ?- D: H8 U3 F9 _" M$ k( [4 d7 \% h/ i
#include <asm/mach-types.h>) M8 R1 O! w) i+ Z* _
#include <asm/mach/arch.h>9 T; |. ~0 k' U
#include <mach/da8xx.h>
8 f+ E2 x) M) y  i" {1 P#include <mach/mux.h>
/ h6 W8 w1 D4 P3 w" U3 V% H) _" x$ z1 \4 l! d0 g" {
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. i& x+ V! y! M# A- V: D+ n: x#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 Y) S& I1 p7 H! P$ l' o
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! r" n6 D8 ?- A: d6 ~8 u0 S#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 e8 v6 |/ y5 k* z6 w
$ ?* @2 Z; X0 b$ S* [$ a0 n
/* assign the tl som board LED-GPIOs*/: k" V; j+ z. N5 w' v
static const short da850_evm_tl_user_led_pins[] = {* J5 ]7 w5 A% \. Q; F0 V1 c
        /* These pins are definition at <mach/mux.h> file */
; W2 ^9 ]' i* l  b  T        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% r0 o( P" ]9 E* b6 _* i2 X( G* n( }        -1% w$ e: K7 v; m# n* f" U  F# K* }! B5 j
};
% W; [& Z& ~# ^* p* b' X2 A; w- P/ F% `: Q" n" [
static struct gpio_led da850_evm_tl_leds[] = {: V4 }2 M2 M7 ~4 o
        {9 [; C( Q) _# Q2 p* c0 V1 Z
                .active_low = 0,, e- m% C  y2 G! l7 y! U) c! W
                .gpio = DA850_USER_LED0,; N) u  ?8 w, v- |2 [. J3 c
                .name = "user_led0",5 K! H, a4 Y/ H5 L0 S- J
                .default_trigger = "default-on",, B/ e; q9 t! h9 _7 D
        },8 W& y! \/ E$ O/ w  Z
        {! S6 ~5 M* C. }2 H
                .active_low = 0,
" o, K7 s4 C5 q' Z* o                .gpio = DA850_USER_LED1,
+ O8 Z- Z4 }: I6 z6 s+ G$ {8 L                .name = "user_led1",
' n1 Y* E; h/ E5 H  F5 p4 V) U                .default_trigger = "default-on",3 I( _5 M: w  Z0 `
        },
5 e. }1 c% o* _        {
4 q* R% H: l  K0 \- H; q+ v                .active_low = 0,
4 [- h- R5 Z3 Z                .gpio = DA850_USER_LED2,
+ v, [) Y9 O! W                .name = "user_led2",1 `: g/ g  W5 j! c' h* U' Y7 m1 p) L. {
                .default_trigger = "default-on",
5 m! v( k% L- _        },
( M+ [0 d. E6 \' x. B3 o  n1 H        {
. S! ?- C$ l& k: h9 D6 B( H$ E! ]                .active_low = 0,
6 \) D+ e+ E7 S                .gpio = DA850_USER_LED3,# Q( Q7 ?8 U( S5 }9 ^7 c
                .name = "user_led3",- j- [# ^; R, k: A
                .default_trigger = "default-on",4 k" B& T1 Y& c9 g. ?0 H) s7 ^
        },
1 e/ F+ i, \4 x% j' V};* |; G- B9 v3 Y: ~- a$ O7 a
$ x! D- u& J" m+ c" J
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) V1 g8 ~; ]( ?6 j( M% w' l( i        .leds = da850_evm_tl_leds,
, a5 ?, |' M8 w8 [9 U9 G: o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# U+ c6 t! v5 [};
8 b' M) C8 q6 b: a0 R
; R+ x: p; v  F3 m9 H, ]" lstatic void led_dev_release(struct device *dev)# Y  H- V2 k" q% A! ]
{+ R5 `8 F9 C& z: @5 f7 f
};
# g- j8 E" e; s+ S5 w. @" k: f; p; U& r1 ^9 p. N% P; G" F
static struct platform_device da850_evm_tl_leds_device = {
" a$ |4 ^# c1 h2 d/ c  @. r% ~, ~' A        .name                = "leds-gpio",- k% x5 a+ ?$ l  I5 j) K
        .id                = 1,
4 _) g) E* D4 h; K1 x        .dev = {+ V" h, _; b0 I9 T7 O
                .platform_data = &da850_evm_tl_leds_pdata,
! b$ E2 k; o3 X5 @+ F; K                .release = led_dev_release,
  k; o! ?" ~5 t4 e4 N1 Z        }
: n1 b9 G1 [$ I% s};
' O6 D9 \$ Z0 Z! Z+ [8 y. R! \/ N& ^3 \5 l5 [
static int __init led_platform_init(void)) a# J+ t' h+ W
{! D5 h# Q4 y0 d4 y6 i8 e1 \
        int ret;
+ R. D4 V/ A2 f& b6 w% Z/ j: ]#if 08 A# R2 u" @) N, u2 [& `
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. {, V4 Z' v+ j; ?% b" n
        if (ret)6 Z$ U; s1 C# j7 g6 l
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 X6 ]  j& r/ u- O% @9 x6 A
                                "%d\n", ret);& E4 L# L" l$ L  f" Z0 [
#endif
! V; b% A  }* C$ a& ]* H        ret = platform_device_register(&da850_evm_tl_leds_device);" I  ?9 I+ O1 ?# y  E5 ?
        if (ret)
: D1 Z/ a8 e! f, ^- }4 ?                pr_warning("Could not register som GPIO expander LEDS");
4 F7 X/ g+ H2 Q! L$ h- ?; O        else& r3 O! I( M( W, V! Y
                printk(KERN_INFO "LED register sucessful!\n");, t. n7 Z7 `3 U5 `/ K
$ a* _/ Q/ L. W) J. X5 s! L; e
        return ret;* [, |3 K  R4 s' r. [( G1 Z) d
}
# a4 |/ |& @5 B4 w
6 v3 b/ K0 N; U6 U2 F( q% M0 }. Wstatic void __exit led_platform_exit(void)
- \' b1 E7 \$ g& \$ F{
- f( B1 y1 a: U9 l" h2 O7 r        platform_device_unregister(&da850_evm_tl_leds_device);
* J' }' J) d# t' s
) j# O( g3 E+ \: X+ R        printk(KERN_INFO "LED unregister!\n");
+ `1 k1 v' T( d; Y0 i}
2 d$ y- C4 _6 t& ]! k; I2 _- Q  a0 C( Y
module_init(led_platform_init);" d1 u9 H2 L: W' R
module_exit(led_platform_exit);
2 Z; c- H" P! g# y7 u/ j* m, m9 \2 G/ z: y1 g
MODULE_DESCRIPTION("Led platform driver");5 y/ ?5 O6 U- N
MODULE_AUTHOR("Tronlong");
- r# T) t+ @2 q( @& nMODULE_LICENSE("GPL");5 m& J+ p3 B5 q# B$ d
' m" _# _+ c% g! `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-5 09:04 , Processed in 0.039999 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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