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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& M- c& T0 f/ T! |/ A#include <linux/init.h>% z5 R# s  u) d7 {- {
#include <linux/module.h>3 L' A( f4 Q* f6 Z3 h! ]) d8 d
#include <linux/kernel.h>
) L& e  `. o5 y. G- w#include <linux/types.h>
4 c% O; y$ P: |2 Q6 L; K#include <linux/gpio.h>
$ g3 j* K  ^3 L) l  M. N#include <linux/leds.h>
: c. x% _* x. t1 j* e' v#include <linux/platform_device.h>
0 n' `' _4 m/ Q/ k2 F6 g+ ~: d3 X# f) Q8 i2 C* ^5 t
#include <asm/mach-types.h>
: W; `* N# e7 |#include <asm/mach/arch.h>9 T$ A: o8 [3 Q- ?( d" k
#include <mach/da8xx.h>
7 |( i' T0 s4 D#include <mach/mux.h>
9 Z0 a6 F' ?9 a! `) W- K" f% \- B# j/ m5 B, ^+ k- p
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ i8 K  W$ q( H/ S# T* Q# t
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 n1 G. b0 v1 F  K1 S/ l
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 Z. s" F$ p: M#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ i4 V1 q9 H- p2 E" n7 w

; G- u. a# Q% c' @! M$ T/* assign the tl som board LED-GPIOs*/
* ]  ?& K, J& H- f+ Qstatic const short da850_evm_tl_user_led_pins[] = {
8 ?  h  t! i4 F- z        /* These pins are definition at <mach/mux.h> file */; S; Z4 p1 F" }9 K( c, v
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," X  F5 |3 k. u
        -1
, D* J1 \2 W% V4 I- Y7 c& e};
2 ^/ h& Q4 [7 e3 }1 |
) r2 D$ K3 K0 F+ y! M2 K- Hstatic struct gpio_led da850_evm_tl_leds[] = {
3 Y, V# m! }) a  }        {0 B6 T; H' n$ N
                .active_low = 0,8 @: g# |' P4 ]& r1 f) J% m: f
                .gpio = DA850_USER_LED0,2 a9 m$ n' _8 I# @; u
                .name = "user_led0",8 e2 l( j' e7 D& j
                .default_trigger = "default-on",7 n8 I; M' N  Y
        },7 w! `0 p( P" ~( _* r6 ^: |) Q
        {
4 T( ~/ A/ [* x+ M                .active_low = 0,
) \# Q! [9 S. t$ E: ^# L                .gpio = DA850_USER_LED1,5 Q1 {( S9 H5 u
                .name = "user_led1",
: F1 m7 o+ K4 f9 [2 y                .default_trigger = "default-on",
3 G& A6 z) D# w% u* [0 o7 B3 g        },
5 U; j& L5 U8 U# Y        {9 e9 G2 M! R- X6 j
                .active_low = 0,
) Y8 u6 Y5 T8 H- N: g- \1 {                .gpio = DA850_USER_LED2,' A* B& B+ a6 f( {2 h0 r
                .name = "user_led2",, I; ?% r& C& G
                .default_trigger = "default-on",! ]$ Y1 E$ s& @: l- d- A* C& c
        },
, t, W# a) S( P& A        {: w* z; x8 B" [! a( o. U+ |* @" n
                .active_low = 0,
# f6 G& w+ h6 Z  ~7 [7 \                .gpio = DA850_USER_LED3,
/ H8 z$ b- v" \! C                .name = "user_led3",
! f7 a4 c" H: |: }  H                .default_trigger = "default-on",
, A% Y- Q1 i5 w; G6 N# ?        },- k& X: F0 j. d- ~" D* y
};# O" f) J  L0 I( A0 X  H
# \! E- L/ ]. G0 j
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ _. x. T1 K( W        .leds = da850_evm_tl_leds,6 I2 ]" Y1 ]6 q+ R# _" Q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 {# S8 N& a+ Q- ?& A( w
};
& y  m- i; p: \
: p+ ~1 K8 ]# p# z1 e$ ostatic void led_dev_release(struct device *dev), t5 W( M; O( D" u& j. a
{
8 h. K8 I4 S6 _+ i1 i};) F- K4 i/ `' k+ y
* {6 L% I( K' D% v9 L
static struct platform_device da850_evm_tl_leds_device = {
6 h/ Q, M1 |- L2 x7 S9 H0 C/ `        .name                = "leds-gpio",! l$ ~* R) z" o5 d
        .id                = 1,
+ i& E  x) k3 d0 ]; y9 _7 N        .dev = {+ u! }1 _" b6 M3 R7 v" l- \
                .platform_data = &da850_evm_tl_leds_pdata,- v3 c; g7 U& }3 E8 ?/ h
                .release = led_dev_release,5 k/ u7 [/ b0 ?: s. S
        }" m* J) i5 D5 J# A7 u
};
. h% i3 R  W/ f
8 X% k- P! n$ M  `6 q$ ]static int __init led_platform_init(void)6 c5 X: a+ {0 d8 m1 w* z. {
{. r( n% B" L2 K7 L0 I# r
        int ret;
+ h" @% J+ a  F& `6 i#if 02 a3 x: w6 M6 I- X& n: L7 U4 V
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" M/ U* ^/ Y- C
        if (ret)
" E: D( P3 Z2 C! X8 a/ ?  T( \8 R+ K1 M' `                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 K+ I6 }; k0 R* x
                                "%d\n", ret);
. d8 g8 H/ v: [# `5 x7 o9 i2 |7 m+ s#endif1 @4 r1 W0 q4 V3 \- r
        ret = platform_device_register(&da850_evm_tl_leds_device);$ p9 ~( ~  q$ w; v1 X" H
        if (ret)
, \& C- l# \9 d                pr_warning("Could not register som GPIO expander LEDS");
" ~; n- |# Q9 [3 N8 p/ A6 H        else% o  [8 T: }6 A) g" T9 y) G
                printk(KERN_INFO "LED register sucessful!\n");9 b* e+ J6 S' y
0 o; Q+ e. N- I  [& T, ~, d
        return ret;% \' p  j8 L- R: t
}! ~! ]8 V; G8 a* c

3 L% D& y0 ~9 vstatic void __exit led_platform_exit(void)
2 W* ^( j% J% D6 `4 O{
/ m2 r; P( r8 E3 ?  b, V& l$ e! u        platform_device_unregister(&da850_evm_tl_leds_device);) N6 E  e$ e3 f9 x# ^0 ?) d3 i+ l3 s

; ~9 U( i) S2 O0 [        printk(KERN_INFO "LED unregister!\n");
" A) u0 R0 `; a; p( I}
8 S$ C( Y8 K2 H) w& C0 X
" ^% A- H0 [, H) a9 D. k9 v3 t7 cmodule_init(led_platform_init);- f2 n/ c. O6 n& V, R' F7 k
module_exit(led_platform_exit);" R- R$ u, m) X' c+ Y. L# t

  f+ o8 r0 Y( bMODULE_DESCRIPTION("Led platform driver");
# }/ E+ e4 n/ Y0 c9 ZMODULE_AUTHOR("Tronlong");
4 K9 P& Q! e! U& j' n( x8 G& iMODULE_LICENSE("GPL");5 p8 c: M0 y9 r; q+ v3 w  |6 {
% R# q% Z* @3 o9 @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-3 17:20 , Processed in 0.036886 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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