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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% X1 _/ @& j3 e' j3 C#include <linux/init.h>
* f- R2 f3 s; F3 ]8 b#include <linux/module.h>! a4 X$ F" T/ ^& v/ [) c
#include <linux/kernel.h>7 b1 J, k8 l, z' T, c$ t0 O
#include <linux/types.h>
% u- Y% e2 W( O% }0 D! c1 w+ o7 X. Y9 h#include <linux/gpio.h>
  N, a3 q5 k8 K  t. P3 [#include <linux/leds.h>* \' G3 c* }0 Q9 Y/ @4 I7 c7 M
#include <linux/platform_device.h>
* n0 z0 z; K+ i# c7 C7 a6 S
* c, [' W7 m1 \4 K' Q( ]4 [: e#include <asm/mach-types.h>2 r# n& t2 K  w$ o, B
#include <asm/mach/arch.h>, U0 H( _) p/ d4 j
#include <mach/da8xx.h>* ]/ [: Y! s( F: d9 w% C# t
#include <mach/mux.h>
5 \. Q1 F' W- I0 e5 N2 x( K& k3 E7 n& Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  X. d9 ?( C: C* r! ~1 b% y+ D#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  d  r1 A* t1 @8 a; U4 Y" V2 [#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 }& ?5 ]/ s& D! C5 q: E
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); I; Q" ^. S7 F# K% J9 k

% Z+ P  @+ q$ B% n8 ]' c/* assign the tl som board LED-GPIOs*/
2 }# c, X, R+ p5 l. z% tstatic const short da850_evm_tl_user_led_pins[] = {
  j4 c5 ]4 a/ a. E        /* These pins are definition at <mach/mux.h> file */& i$ b8 K* z1 Q& k! l  I
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 R- Q" S/ w4 n' s5 [
        -1
% d9 R" v5 P' Z# `+ c) Z};) t2 n" I& W$ x2 D0 D+ O+ H
( N; _5 n% p- T$ b
static struct gpio_led da850_evm_tl_leds[] = {% w2 w/ D( Z5 j3 u  ~+ b
        {9 E( q% T6 [9 }6 l* B: V
                .active_low = 0,5 a! v; P8 Q* ~2 x7 J
                .gpio = DA850_USER_LED0,
: ?5 b& d$ g1 Y# H  H/ D$ T4 ~                .name = "user_led0",/ Z' X4 a; }0 y) y' h
                .default_trigger = "default-on",
/ J6 u" a2 X, H        },! a  ^: E8 e) a# {; U7 e: y
        {
" D% H9 p# f! ?1 P; G& n                .active_low = 0,
) {7 I9 X# C$ [                .gpio = DA850_USER_LED1,
& y1 ^! h% R1 b8 g% {+ y" f                .name = "user_led1",
* V5 s6 m2 s- Q6 U4 h                .default_trigger = "default-on",
& @* [) Q8 r3 Q* H. j* G6 q; [        },
" e7 O" l: [) x% ?% m        {$ i4 P& t+ f5 p' e0 S) o( G: i
                .active_low = 0,. N6 u7 w2 D3 \5 t! H& E6 M5 e5 [
                .gpio = DA850_USER_LED2,
2 {* w  @3 H7 r1 {1 e+ H9 _                .name = "user_led2",
& `2 }; ?) S! \4 r                .default_trigger = "default-on",9 c# p, E- }4 g& u( v, w$ h
        },. K, \$ o8 c0 F  q
        {
- x1 T" I, c7 ?! W% n# v) G. Y                .active_low = 0,
. [0 F- K$ U5 m                .gpio = DA850_USER_LED3,
5 r+ R1 u8 ~' \& ^/ c! L2 u$ g                .name = "user_led3",
  _# V0 c7 X0 K                .default_trigger = "default-on",
& M8 Y% l. q* w( D- Z9 P- T        },  i2 [' C. l/ c" s# u+ M
};
6 D) w! M) e/ ~) }' t: Y  N1 k" J. t/ c! R. {2 C  A( @
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: f) A7 ~; X& Z( ?+ V
        .leds = da850_evm_tl_leds,. a2 R, w- ?" e3 o5 y( O. ?1 s
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. F8 q$ r  {6 P2 u
};
( O' a; a& \6 f% `  {% s8 \& A
" [, C6 ]- X% c# W, [( F; L( H: kstatic void led_dev_release(struct device *dev)
7 I' i, [) |. y& H% x) H2 J{
* ~( Z& b7 |$ Y};) V6 [0 M/ E* }

& ~; w( `6 t- j% }static struct platform_device da850_evm_tl_leds_device = {
) u: H" a" l) r3 l) m        .name                = "leds-gpio",
; d2 K4 m2 d( x" c$ v4 P9 M& w: U        .id                = 1,, F, s9 y3 b! |, A8 |6 g  z7 F# k: S
        .dev = {
3 Z" F7 r- F% t) @7 |8 `. ]9 K. y                .platform_data = &da850_evm_tl_leds_pdata,
* v5 G: l% ]4 M2 G8 b2 y8 @                .release = led_dev_release,
! e8 j! _* y3 K+ S! N7 k1 z+ v$ v        }
( f% f$ [4 z5 V) ~) P+ J+ E};
6 L8 t0 H$ a$ c' }- a/ m
$ J) B7 p# B. Q- w% C" L# Istatic int __init led_platform_init(void)
: K0 ]* M% e7 I* ]{
" g5 h: a0 M" j3 |: k        int ret;( [2 G# |4 ]( G4 t
#if 04 ^: b6 ~# V; B+ C2 A4 J- B( j4 u
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);8 d& J! a1 p& E# E$ v8 J8 G; {
        if (ret)) |8 N9 M+ G# X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; @  T) t9 e% Z( d# ?4 x& S                                "%d\n", ret);) R) U( i6 G% [  o, ^
#endif' C5 q) u& z) {6 X; \: I" X
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 K3 g; n6 e! g" J% K) q% i, X        if (ret)8 g  d+ i4 Q& ]% R( l& Z  }
                pr_warning("Could not register som GPIO expander LEDS");0 q2 w% G2 b1 v
        else' t/ Y7 J+ N/ j, a' @
                printk(KERN_INFO "LED register sucessful!\n");
$ J/ |7 ?+ f, w  J" m) B& O" p# z
        return ret;& o6 R% {( M* x- }; V
}
8 W- o8 z4 q: C% h5 n, W" F0 m; p, R
static void __exit led_platform_exit(void)# l; t) E9 ?$ P$ ?2 y' c
{
6 S& I6 {( e: d% m  i        platform_device_unregister(&da850_evm_tl_leds_device);
/ g9 d4 ?& {+ S( q. }
1 i2 E  ~5 d# t  }8 `        printk(KERN_INFO "LED unregister!\n");
/ S, ?0 B( o6 W2 h* |+ Z3 J- T}
2 W4 H7 R! U& Y- R- W: T/ X" S. Y, E: Y6 u
module_init(led_platform_init);! u4 B. s4 |7 z- y1 @+ E5 h8 `
module_exit(led_platform_exit);/ V. W. o; f& I" K1 |

( r+ i" C% r1 h4 K& p' z# D7 C6 S- SMODULE_DESCRIPTION("Led platform driver");, X6 w: _2 |& E$ A% s, a
MODULE_AUTHOR("Tronlong");
$ o$ e+ E$ p$ o/ L* \MODULE_LICENSE("GPL");
' Q/ V' A1 t, \& X9 n
5 l# t0 E: L+ ?# G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-6 02:29 , Processed in 0.040763 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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