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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。) b! U# Z9 p( c0 U, U$ ~% \
#include <linux/init.h>
9 K: k  H' c5 A/ |( n#include <linux/module.h>0 C/ y, F/ R! E' L
#include <linux/kernel.h>
( v0 u3 Q: L, O. m, w( v$ h  i#include <linux/types.h>9 a- q. Z) w) n% Y
#include <linux/gpio.h>
8 X( a  U, }+ g+ r/ [  o#include <linux/leds.h>1 a. }& c: v+ B& h4 A
#include <linux/platform_device.h>
: A5 Q  P. d# o: O
8 A& q- t8 i4 n8 e3 P+ [8 [' v0 O#include <asm/mach-types.h>% n9 I, ?2 X6 n8 N! ^( I, K* K
#include <asm/mach/arch.h>; }7 U# D- ~' x8 x
#include <mach/da8xx.h>- F6 b4 U! J: q# @3 |$ T7 k4 j
#include <mach/mux.h>+ P0 z0 P: c, v! l$ M2 c

; h, V& @& x& U#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): K+ w/ o) }" e9 |; H" l( k
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 h9 y9 j4 O. \( d3 u* }7 x9 t0 w
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 u' A1 q0 j1 E- g; k) S2 _; @5 }#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, k' Y  Q, f* `2 C  A" K0 m  H. U; Q- [
/* assign the tl som board LED-GPIOs*/
% r  X8 e# D5 ?0 B" J% B: ?  ostatic const short da850_evm_tl_user_led_pins[] = {' b; _* I# K3 U; X) H
        /* These pins are definition at <mach/mux.h> file */
2 S. G+ }0 Z: T: @        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. G9 b; p0 E5 q& u
        -19 i; g/ a( y- B# I/ g$ {5 l) d
};3 M! d- A' M5 S0 D- }

. i' x" |- K1 Xstatic struct gpio_led da850_evm_tl_leds[] = {
+ u' @# c" _$ B/ \# B/ ?        {2 t1 M9 m& ^+ T+ ^. q' T+ S
                .active_low = 0,
, c& X; z$ E7 C* i6 J; [                .gpio = DA850_USER_LED0,  X4 d$ X% q+ e' a( d* @. n
                .name = "user_led0",
8 q/ _' |2 n- b& M9 g. N6 r* Z                .default_trigger = "default-on",* j2 G, O' V9 O# S1 W
        },
: l2 W7 J8 K; x& Z, i  t% t        {, A% U' n2 Z& R
                .active_low = 0,
8 Q5 E) l( R& i! ]0 u( E) X                .gpio = DA850_USER_LED1,  H3 R+ E" X7 Y* X: q- U' t$ D
                .name = "user_led1",
0 G0 @0 x  r4 E* j' J, q: k                .default_trigger = "default-on",
7 z0 I6 c" S% e+ o. }; P; L        },' |! Y! L. E0 s
        {
; F& P0 U. M4 I( n                .active_low = 0,0 x& M) w8 P, A6 z2 \7 J
                .gpio = DA850_USER_LED2,
- d# Z* G: l5 ?# k/ @                .name = "user_led2",
$ f# a9 b6 J8 Q: R# Q                .default_trigger = "default-on",3 q; Y! ~( P6 d7 c. u8 [3 i! x
        },
6 K+ ^+ p0 B( d" B! `6 P        {1 n; X, N/ m9 b/ q, d' I
                .active_low = 0,3 a) N0 |* @, q
                .gpio = DA850_USER_LED3,
  t% D: q0 g4 f                .name = "user_led3",8 B. Y: O/ ?* w, o7 T. v4 x, v% F  _6 x8 M
                .default_trigger = "default-on",+ }( J/ g# _8 u" l
        },
, C- b7 K9 f, x+ d};
4 ^6 P1 x4 i# |9 t: [# O! A% ]4 C& @" j( X* f+ t
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 ~; e4 U* W1 W4 M5 y0 z) k# T
        .leds = da850_evm_tl_leds,
1 }% w0 }# W5 [: @0 A        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 B1 @/ ^5 ?* S. n0 w1 }};  G  T, Z8 \7 x" P) e
  c; Z$ L) Z0 X" w
static void led_dev_release(struct device *dev)# R' t, A0 l) o- h
{& c; Q( g( o. i2 B; r
};
# l# {- I- k# K: E8 l
& ^- w, `0 S) G6 `4 l4 kstatic struct platform_device da850_evm_tl_leds_device = {! m& J0 r1 o! G* I. y- A* N
        .name                = "leds-gpio",
) @+ Y" F( i+ R- d% z9 B" Q        .id                = 1,2 B/ {* c" ^  p5 U& Z& D/ S
        .dev = {& i4 o; Y5 p, D, y" S4 s% _/ c
                .platform_data = &da850_evm_tl_leds_pdata,
6 K2 g' Y0 z6 ]8 y+ R, e                .release = led_dev_release,, [. H2 C1 k! c& `. f
        }3 S/ H4 B) T) j1 C6 [
};
1 Q8 Y5 i, L2 i
* n1 l! ~7 M* s( N+ X9 Gstatic int __init led_platform_init(void)
: x1 X7 p* |8 {4 {9 X! A7 o' x{
& `( a% L. {5 b7 X1 s/ l1 g$ G" z        int ret;
6 M* @. d9 A- W+ O#if 0, Z+ o" Q) e$ f, F; h4 i
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 c# g, m# {- ~5 B( B' f
        if (ret)  R( L1 h9 k' T  i% x+ m0 h# O
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- Z) v/ r1 W7 m+ Y
                                "%d\n", ret);
# q% A& Y4 Y3 ~/ B' @* }. a#endif
! N  N0 c; C9 V) B$ I5 ]        ret = platform_device_register(&da850_evm_tl_leds_device);% L" T4 ?% _$ f6 @) ~- v
        if (ret). x4 F( ?0 F8 n
                pr_warning("Could not register som GPIO expander LEDS");
: c: m! t, L% l8 ~8 r2 I' A        else! X5 V# Q4 @+ |5 P* n5 V
                printk(KERN_INFO "LED register sucessful!\n");
' `6 R3 H* d5 T$ r6 W* p' l# B1 _. n" H# C7 v, ]
        return ret;7 O  o5 h+ |- ?' V
}
2 e. X3 v+ G7 j' T+ h/ p+ ?3 q: X- g# g% T& m1 g- n
static void __exit led_platform_exit(void)! z/ \4 A) j6 Y
{
" e, Y+ A' b. |        platform_device_unregister(&da850_evm_tl_leds_device);
5 y' m/ U7 {$ ]$ I2 E: S  X( w6 t% ~
        printk(KERN_INFO "LED unregister!\n");
. P' ]5 @' H  Z7 L9 j! l  i}1 h/ @/ T' Q  N8 X
+ }* V2 m8 T  m. B5 J4 [; }
module_init(led_platform_init);
, D3 X5 h) m4 y7 cmodule_exit(led_platform_exit);
) }# L' a; b2 V5 \# O
4 [) S6 O/ g: p: {+ xMODULE_DESCRIPTION("Led platform driver");
" S, O& d  |+ l. D8 TMODULE_AUTHOR("Tronlong");
! g0 P4 m: X" s9 Q$ vMODULE_LICENSE("GPL");
/ t1 J+ `2 f) A& w+ J! Y9 w/ }, g# n/ V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-22 06:14 , Processed in 0.039035 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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