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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# Y1 [' o9 |5 u! A: w4 _. b$ G, `& S
#include <linux/init.h>+ @- r! m' \  U7 {# X, B5 C2 L
#include <linux/module.h>( x9 h& k: y: W9 d, G. e' t5 ~
#include <linux/kernel.h>9 `+ n" J/ G' F  `8 \1 c$ l. Z8 v$ o
#include <linux/types.h>7 G& A9 T+ M/ Y: y
#include <linux/gpio.h>( I2 X% ~$ t0 {. B
#include <linux/leds.h>
8 v3 T4 E: i8 t7 d* i4 P# g#include <linux/platform_device.h>5 V, H9 v) `6 y6 T: h2 m. ?

: a+ {7 Z- c0 K  T+ \#include <asm/mach-types.h>: X/ F- a( _% Q; a# y: o: B0 O
#include <asm/mach/arch.h>
! P! a. ~* ~& O! U* e4 h#include <mach/da8xx.h>
" u$ c1 l$ q  b! }#include <mach/mux.h>8 g- w8 ]; P. z+ `& o' y

; ]7 s4 K1 Y. `& T* P! K#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( e1 S5 P) q, ?8 k/ i$ b2 q$ T
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( f0 E6 q4 `' `9 @. z# t
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 H8 j0 j1 I3 x- l7 ?) q, \# i#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  M+ p7 o( h* J8 {4 W! S  k' H; q  C# P- [2 m# J  ^
/* assign the tl som board LED-GPIOs*/
& X3 ^% \2 a- z( ~# N& tstatic const short da850_evm_tl_user_led_pins[] = {
8 r% T' v+ [4 G4 x        /* These pins are definition at <mach/mux.h> file */1 v1 j9 V4 q3 m7 @  i
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ z4 a% c, `+ _* v
        -1
8 y# i3 A) K7 I2 _/ @" X- |2 I};
9 F' T+ V% E  u5 f6 _- w% x/ k$ q, j, R# K+ i
static struct gpio_led da850_evm_tl_leds[] = {
) F+ }) t4 P6 @& B9 ~& ?) y        {& b; s( _# M9 K) c# X
                .active_low = 0,
3 Q  H) J# x& T7 W5 Q* Q) Q* Z                .gpio = DA850_USER_LED0,
4 x/ [& s- t* @1 H* a                .name = "user_led0",
% q" ?0 R: r: Z  H  y( O                .default_trigger = "default-on",3 }# O+ q0 `& ^4 J, s2 h, ~& D9 d- F
        },; ^/ G* H) w; q3 h8 H  e, e+ M
        {, a8 n$ m0 r0 N& N" Z
                .active_low = 0,
( a' A6 i) R) I$ j" W/ \0 w                .gpio = DA850_USER_LED1,
9 P. z) i* C4 h                .name = "user_led1",
( o/ z. Y. Q, x: o3 c/ n                .default_trigger = "default-on",
+ P9 @  a2 j( u7 ~2 d        },+ o- L3 {7 U" b6 |9 e2 f, h5 k
        {
* u( j( c) ], _+ _8 h) v                .active_low = 0,
1 q; E) b( ^) W                .gpio = DA850_USER_LED2,* {1 B- J* Y) _+ w; j
                .name = "user_led2",
% @! l' p3 e0 `! I3 F& x                .default_trigger = "default-on",, n' [, n# c3 `3 n$ Q
        },) J+ h0 Y- M0 a
        {' I. f2 ?5 v+ J# W; V. ?
                .active_low = 0,
. I0 r+ K! v' L" |# d& T                .gpio = DA850_USER_LED3,
% }2 l$ A7 _. G% ~                .name = "user_led3",
1 M% F! K8 H3 g. Q' ]  D                .default_trigger = "default-on",
8 y% }8 X1 i. M7 d) y( P+ {- R3 [9 K        },- h/ l1 f* u% d+ A
};" R# K, w, {1 S4 `( U8 m- ^5 \% t
5 L$ J3 u1 e5 X4 ?* y6 M
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 U& T# @4 m2 P% E: u( z
        .leds = da850_evm_tl_leds,
+ Z$ [3 k+ n7 T2 H% E$ m        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ L( \! u1 l6 W% Z/ c
};) ~- \* c: L3 ?4 v( L

: j6 I# f% d9 C: n' o1 Fstatic void led_dev_release(struct device *dev)
, p$ s6 v* Y8 i' f4 t{
! x7 y% z" ]; A};" ^! G7 d# Y6 i4 u

5 [( q% T8 I5 S, ~static struct platform_device da850_evm_tl_leds_device = {
* M; K6 q& H% z8 P        .name                = "leds-gpio",
9 ?2 }* ^* Y* I7 ]3 g$ p; C        .id                = 1,' A4 p5 j  P1 N1 ?
        .dev = {
: a2 ~9 G/ J/ ?: h& M" f+ B                .platform_data = &da850_evm_tl_leds_pdata,$ e2 v$ F5 _: }
                .release = led_dev_release,
) I5 J4 G: v/ F! N; v/ m1 c        }
) ?4 L" ~% f) d: m3 C$ m0 E9 @};# C9 D& s5 U% n, Y
/ A3 F* e- W0 [- N% ]1 W3 H7 N
static int __init led_platform_init(void)
1 r# S& L# s( s{* v# d' ?4 j3 a- L
        int ret;+ M6 S, C, h9 G' G
#if 05 C+ ^! u* A& {# @) X) p* M
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! C& f5 D4 c; Y/ q; O) O        if (ret); I$ B  j. `$ [4 S' |
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 p/ M; o  m1 \* `9 _                                "%d\n", ret);' V) C3 u3 j  r9 k/ ]) _% I& T
#endif
7 [' X/ A9 O  `        ret = platform_device_register(&da850_evm_tl_leds_device);  P  G' `9 F$ ?( t
        if (ret)
. Y$ ]3 Z. ^, J; ~% L/ A' a                pr_warning("Could not register som GPIO expander LEDS");
( n1 _4 _5 D2 S  Z* S/ H4 P        else
7 w2 V) l2 T1 X* d7 ^                printk(KERN_INFO "LED register sucessful!\n");+ L$ v8 ]7 s. z0 h" R8 `

7 I/ {% @5 ~# R) b, H' Y        return ret;$ B6 A7 v" V% y7 R
}
* k+ `. J0 V! T
3 l6 e& l0 u' ~* X2 ~# Fstatic void __exit led_platform_exit(void)
9 [0 z0 W+ s: O% l$ e{% {% w- Q0 |5 G$ R8 N( g+ I
        platform_device_unregister(&da850_evm_tl_leds_device);* ?9 l; c* w8 g( y+ f) V
% H. n) N) }0 q3 r8 s' s4 q5 U3 \& w
        printk(KERN_INFO "LED unregister!\n");( z! C* g" k- |0 E1 F) R" ?8 S
}
; |% K- {/ I, o6 I0 M5 }2 m: C# v1 N8 q5 C/ ^+ X
module_init(led_platform_init);
6 m1 y8 R3 a& d, [& O/ x$ Bmodule_exit(led_platform_exit);. \0 a) t, I( U% b" l
# g" |. m: B  z5 e8 N" d: L1 O
MODULE_DESCRIPTION("Led platform driver");
2 {. Y# A% U/ N( P! oMODULE_AUTHOR("Tronlong");% x: a  S+ G7 q4 M+ p5 p1 }9 `2 v
MODULE_LICENSE("GPL");/ A0 B( J& k- x4 q. J% s( f5 ^3 z$ R

# U+ g  j# v/ C/ \5 l/ z; y/ R8 n0 n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-3 01:51 , Processed in 0.038946 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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