程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' D3 R6 L9 e( h  F* k' _#include <linux/init.h>
, U/ C" T9 z0 D#include <linux/module.h>
; K) a3 u3 r. B5 [#include <linux/kernel.h>' p8 f; A. @4 Z8 E
#include <linux/types.h>+ R# A' o  W4 c  a0 B0 `( v
#include <linux/gpio.h>) V2 q' A% C; u6 l; a
#include <linux/leds.h>7 q. `8 Y1 h) D  c- ]! n" c5 A# K6 L
#include <linux/platform_device.h>
. p! J# i0 w5 F# u: [
6 b4 t' F" A' o* ^7 X1 \#include <asm/mach-types.h>
! K* }8 K# Q/ E4 ]  _( ^6 z% D#include <asm/mach/arch.h>
0 P8 S; Y1 @; w; k5 X8 F6 z#include <mach/da8xx.h>4 }2 G$ g8 q( d2 _2 g
#include <mach/mux.h>
% b) |4 I8 M) v  c3 l2 R
( {  Z) q+ g8 K5 i! s; d. s% ?  a! `#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 G0 p& T9 r" I- r0 W0 a/ t+ A#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  @  P5 _5 ?# d( i5 e$ u+ _
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" @0 Y2 d2 _. c0 b; V#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! _8 ~$ j" ]' l( z" T' Q" f

& X& F7 ]+ S! t* C# f$ y/* assign the tl som board LED-GPIOs*/$ \, d! j2 b, m6 Y3 V# a" B
static const short da850_evm_tl_user_led_pins[] = {# H( O$ |% n. L( Q9 j; Y; j3 T# L
        /* These pins are definition at <mach/mux.h> file */9 l2 I7 w# C% [6 a! T# O4 A
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ K: `- p+ g- _+ g) z( ^6 ~$ O
        -1
& y$ S) |+ V; F* ?' d7 H5 R};6 N0 [. S; ^1 k, a$ P1 n. w

3 o: r5 J2 A4 O3 i. P" y/ ?static struct gpio_led da850_evm_tl_leds[] = {
; ^9 l4 ^3 ]; P, [  c% e) \        {
# u- O* g( [% Y/ ^                .active_low = 0,1 W0 G7 Z+ K3 M8 D% h# i3 s
                .gpio = DA850_USER_LED0,8 z5 R, I6 I. I" X8 ]& a
                .name = "user_led0",
$ q2 m, T/ S6 r, {                .default_trigger = "default-on",
. P8 K) W8 D* V. t- e" I        },; C: p3 W  }% [7 l
        {
# z5 ~# z  I- @: j* {2 y* d- d                .active_low = 0,+ @, J* u- I0 v- q& v% @( Q  a/ Y
                .gpio = DA850_USER_LED1,
+ m( H2 L; A' e5 j2 Q9 t                .name = "user_led1"," e7 s2 a& {3 n- E% ^. U
                .default_trigger = "default-on",/ ]5 w% q* h% m- ]
        },
3 G" W2 b" d* A+ `! E        {  f. o8 _+ l) ^4 R2 T7 c& j7 G
                .active_low = 0,, g9 l) A& l0 t, `  e) i
                .gpio = DA850_USER_LED2,& N3 Y+ m2 G4 J4 ]. s
                .name = "user_led2"," r" Z4 p. I" d- {
                .default_trigger = "default-on",
# j) f5 ?- I/ E4 |& @        },
7 @( ^+ y5 B4 K% u6 Y3 u( m        {
. h5 y% i) ~% N                .active_low = 0,! [) T2 M) x* g; M* ~+ L
                .gpio = DA850_USER_LED3,! J2 B6 r, H; ?) |
                .name = "user_led3",
4 j3 W+ V. X1 Y3 h# U* V                .default_trigger = "default-on",1 g: g! o$ c) u3 n
        },: o. z; b4 m5 x
};1 ?; c" B  O& E
) J' X" T* {# ?7 f
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 @, O$ u  M# t" a/ \* v: \8 ^$ \        .leds = da850_evm_tl_leds,; g5 M& I6 p  {9 n. D6 f
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 e; j% f# K! K. _: [5 T; ~, g
};
6 _# Q, J7 Z- H3 G3 H+ `
# R# |6 ~* ~; u* _2 Qstatic void led_dev_release(struct device *dev)1 v& k8 H" }! a+ u  Q
{9 U% n% H, j2 w& o9 m  a1 i& m
};
3 U; c, `6 s4 |- Y
- h# ~) ^% p: X( g! u0 y6 }1 bstatic struct platform_device da850_evm_tl_leds_device = {
2 E$ w! }- [' a) l! X* O! d        .name                = "leds-gpio",( b) M. m9 n( H) ^
        .id                = 1,
/ S/ E% n  W  \        .dev = {8 g, ^" {$ g, ~+ K0 ~2 s  M6 @
                .platform_data = &da850_evm_tl_leds_pdata,
3 u7 O( ^: j) I% i& n                .release = led_dev_release,+ M3 R) z) ~% Q+ _) R, U
        }
! [$ r( }3 Q- I) a. u5 ?};& B2 Y. e/ i& y. X7 p' k& U& Z

& M5 M1 K* o3 o2 jstatic int __init led_platform_init(void)
1 `4 E6 o& e( V, ^. i+ R7 J; S{
; j# f1 N+ i6 i- W        int ret;& c( u, p' `; W, g' P$ T6 ^
#if 02 i' U( [3 B7 \
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 W2 v# a3 a7 ^
        if (ret)2 z* [# u/ v) G! U* y( T$ w
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) M2 R" c, L# @# n                                "%d\n", ret);& |8 l( @- x! d4 u+ U
#endif
$ u( h6 p. j$ g+ _! @& y* }        ret = platform_device_register(&da850_evm_tl_leds_device);/ k3 j2 Y5 b3 q6 T* L
        if (ret)5 M/ r( W/ d, o  ~
                pr_warning("Could not register som GPIO expander LEDS");
/ ]3 H8 G1 `( L$ p5 F        else2 E' H; w8 E- g9 j0 o2 J* N/ Z
                printk(KERN_INFO "LED register sucessful!\n");
, j7 W4 J1 f/ p. d2 [! S
. [. J+ K% v- w$ s        return ret;
! j8 S- U- [, W}& e- b) }  p4 V- |7 y% J! G
$ j2 p8 @+ S* k; q  J" P
static void __exit led_platform_exit(void)
" k& B7 X* [7 M{, a# E8 O2 K3 U' L" m
        platform_device_unregister(&da850_evm_tl_leds_device);- D1 Z$ W* p$ ~  }# f
! ]8 z  Q: V# \9 T! R% T  O/ O
        printk(KERN_INFO "LED unregister!\n");+ r! H) \7 j: A
}" d* W7 i7 X' C& u& n1 t

/ E% q5 K4 G- H, G+ Lmodule_init(led_platform_init);+ k8 ]% j* }' B: Z: _' Z, Q3 h
module_exit(led_platform_exit);2 U8 \0 Z% b) d7 K5 C# b; ^

4 S! [% x: G: e2 i" L* uMODULE_DESCRIPTION("Led platform driver");- {$ B& n- c) ~; W; W
MODULE_AUTHOR("Tronlong");
0 Z8 {$ j# U1 ?9 m& gMODULE_LICENSE("GPL");8 k7 E8 Z: G6 D1 N" U
5 \* T* @5 c* `; a5 R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-10 16:30 , Processed in 0.037227 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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