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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。: R& g: ~8 m+ ~- d
#include <linux/init.h>7 Y8 y9 r. ^- {3 \3 W
#include <linux/module.h>
  a/ E2 k" N5 L#include <linux/kernel.h>3 P2 ^# d, y2 T5 l5 T/ F9 r! U
#include <linux/types.h>
/ n9 }7 T0 @3 C, {/ E, H1 v- m7 r#include <linux/gpio.h>
) M% q) Q9 C; h  ?* _+ q% y# N0 ~* d4 i#include <linux/leds.h>: H/ C0 L2 L: I1 n7 U# q( }
#include <linux/platform_device.h>
% u& F5 _) F4 {7 G
3 g  W  w, j; l+ W( E; S- K#include <asm/mach-types.h>% ^" f+ B! e! F& s+ [2 i
#include <asm/mach/arch.h>
/ G3 X3 ^. k! u  k( R+ L#include <mach/da8xx.h>
( \" R. [& a( B- d; ~; m#include <mach/mux.h>  v3 w4 U& N' ?8 G- l; P

5 `+ r  S' z$ D/ o9 v#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ f- q3 \% N. V- v% o2 c- _: |* }#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 f1 ?8 t1 U% U; D2 a#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 C) t+ k: c% z; O% X
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ q# F3 _+ f* d1 O" k# f

1 P* Z% m3 J# o+ |: a  \/* assign the tl som board LED-GPIOs*/3 ?! {; k7 @) ?: x
static const short da850_evm_tl_user_led_pins[] = {
7 k' `/ J) r( C6 V. f, A2 y3 }, g4 d. K        /* These pins are definition at <mach/mux.h> file */& w0 D6 Y3 O9 V) q# `+ Y9 e$ u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# Q: T( b( @8 ^/ B        -1- h' @8 Q! Q0 L4 `
};1 f6 ^6 h* a* w5 Z3 I
- a; c' q& t/ b
static struct gpio_led da850_evm_tl_leds[] = {9 S2 i( i' j/ V# |4 g
        {
9 I) N' a8 u$ K/ ?2 s5 v6 k1 [                .active_low = 0,
! u" |  u  @8 Q$ [9 U7 Z                .gpio = DA850_USER_LED0,
  R3 w  ^3 s, a                .name = "user_led0",5 S' S2 Q; l1 ]5 U/ L
                .default_trigger = "default-on",
3 |4 ?5 I) V2 W* H        },# i1 r, J2 u& w# \
        {
% z. n1 l2 I1 ~3 q) g; p8 V" K' o% y                .active_low = 0,7 h6 C6 c2 E$ Y( t! w+ h
                .gpio = DA850_USER_LED1,
! |6 T% K8 j9 j4 {# g* ~5 A2 X" X1 e                .name = "user_led1",
8 k7 E- x$ B: k9 `+ X1 l7 z                .default_trigger = "default-on",$ r" b2 c( D# G- k) @* ~& s  R
        },- ^; s6 z/ _8 P( S
        {
6 B% A% T* \9 m1 A7 @/ j/ o* ?5 s0 M                .active_low = 0,
* |4 g9 s+ W/ n0 Q# \3 B3 ]                .gpio = DA850_USER_LED2,9 D* f. M2 I9 C( U
                .name = "user_led2",
% z  f9 _3 Y1 C; G  n1 Z+ d                .default_trigger = "default-on",8 |7 r. U) v2 M+ `- h6 ?! ^
        },
6 J; H# o# [' h9 M1 @* W2 X2 {        {
; y# J3 r! J1 Z. z7 Q3 t0 b6 f  y                .active_low = 0,
* p) K/ I% V0 X: z% w' w                .gpio = DA850_USER_LED3," g" s3 O, O& D7 _! F
                .name = "user_led3",
+ H! H# Y0 \/ d2 Q6 u                .default_trigger = "default-on",. @( ^9 P- L0 u! H! |+ N- e
        },; f9 b3 X8 B1 F4 B/ q
};% g6 d; Q  T+ X; y+ P7 w  J+ O& `
! o& a' i4 }0 p1 e9 [+ B9 \" m
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 j( g3 h5 G# {) w: L
        .leds = da850_evm_tl_leds,
1 R, ?" h% c, Y* s6 M        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) S4 m$ q8 z7 M0 G; A: Y};) F4 C* j5 z! z1 O9 I! I. B3 e

& Q! c$ ], @8 d6 }" l/ Sstatic void led_dev_release(struct device *dev)
& Q: o% W( X& g{
4 P) h* r7 ~; v" k. Q, ?, b};, `, y+ O+ T3 [6 W* b  Q

6 C+ s$ Q: b! Y" U- @static struct platform_device da850_evm_tl_leds_device = {
8 _7 K# j+ H8 v3 r# @        .name                = "leds-gpio",
5 X+ M: v; `$ W. V        .id                = 1,% [4 q1 x  P) D0 H5 c
        .dev = {
& Y7 z9 F7 q1 e" [                .platform_data = &da850_evm_tl_leds_pdata,! f$ J5 h0 z6 u6 \* S
                .release = led_dev_release,
: [9 J3 g' `, @# E        }
- C0 [! J, D' i* ]};
: Y) G6 S! o5 z9 s
; ]' U  B) V( hstatic int __init led_platform_init(void)
/ [: w/ M, o  s8 x2 m. E. G{8 p, ^% O  b& _  p' f
        int ret;
- d0 g, ~4 ]% J. k1 Q3 e#if 0
# n# C* ]% @) t6 w& e9 @; E; K        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 p+ Q2 ^& b/ f: M# Q
        if (ret)
; x" z- T2 @: {: P; T" }- s                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 Y& c# z9 B4 p5 k                                "%d\n", ret);9 y- X+ u8 x3 Y, R' J
#endif* i" p* Z2 |, ], H7 P- e
        ret = platform_device_register(&da850_evm_tl_leds_device);
+ l& C6 w+ B# N1 s7 g: w1 {        if (ret)
% v1 B4 f, z  {. a                pr_warning("Could not register som GPIO expander LEDS");
7 \7 Q1 l) n9 I7 q        else. [  a, @+ x2 H3 X$ t0 t; u
                printk(KERN_INFO "LED register sucessful!\n");
0 ~9 e( B! `, C' c3 c+ [: R7 q. k, Z) M: i/ c5 G0 K
        return ret;% j5 @( k* A% Q1 j' x0 c
}0 f( V7 a5 D  X- ]' H- w

+ a: b1 F# n, z/ G! lstatic void __exit led_platform_exit(void)
, @0 @5 A9 z( p/ b) l" p$ t% J{
9 f2 w- U4 U5 ~% y        platform_device_unregister(&da850_evm_tl_leds_device);
0 ]# v# t/ x) h# |/ _2 F' d
9 f% O: d( Z6 J% x+ @        printk(KERN_INFO "LED unregister!\n");2 z+ w) y9 J9 g5 H2 k
}# ]; c4 g" [: e; X
* |$ z1 p" V( s; k  a
module_init(led_platform_init);
/ o6 W4 H0 s+ S4 k& Dmodule_exit(led_platform_exit);
0 X8 a( [+ ~0 T$ q1 W! u. x8 k9 U) z3 [
MODULE_DESCRIPTION("Led platform driver");  C. L% _/ H& o; O$ ~7 T
MODULE_AUTHOR("Tronlong");
2 y8 K; a( w+ a0 L+ z9 Z8 X1 BMODULE_LICENSE("GPL");
& L6 W( l4 u7 K( ]; q& r' `' u, X! i* t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-7 00:20 , Processed in 0.045032 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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