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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 S& ^" B& t& i' x; V  T#include <linux/init.h>% T2 o2 `* q% h6 H% N
#include <linux/module.h>
! ?! K: s* p- L+ }( e  p#include <linux/kernel.h>
6 h( z3 [% m" @0 q* Z$ ?* R# t#include <linux/types.h>0 _2 I- G* I! R0 b2 |+ S" t* D
#include <linux/gpio.h>
0 K8 [6 {% Q& M#include <linux/leds.h>
0 L7 {) u% Q" k: K#include <linux/platform_device.h>
7 g# O& K9 j* z  p7 J/ o
' Q( A8 r1 L. H#include <asm/mach-types.h>) B; }# o2 g+ B+ _$ o! z) V
#include <asm/mach/arch.h>
" V2 P5 L) q4 i: D8 d/ K5 w0 V#include <mach/da8xx.h>' Z) p6 j, t* g# x# l6 U
#include <mach/mux.h>' @" g; |8 t$ Q* L! G; Z
8 d5 R% J  T: s% {
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- ~, c# W; E5 I" ~) ^, d9 A#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 e) L7 Z0 Q4 s( I- H7 Q$ R+ m#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ c& e* ?5 u2 L4 h+ p* G#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ l, y8 ]* _/ M% c7 _  g
$ |6 P, O: }; L" V( L% s3 \1 w
/* assign the tl som board LED-GPIOs*/8 H. I- u9 q2 z9 d
static const short da850_evm_tl_user_led_pins[] = {2 P# O, j# f/ P) p( b
        /* These pins are definition at <mach/mux.h> file *// t; [" P% L3 |' B* Y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( p9 {& Q3 I1 n1 Z- I1 d5 [        -18 v2 ]- f, t( B' j, t! m+ }
};# [! X0 j! j- t$ f1 m- n
1 q  }2 O  s0 u8 w& n
static struct gpio_led da850_evm_tl_leds[] = {; |9 G" A8 |/ o; E
        {& W% a( E, W  E) a9 ]2 \
                .active_low = 0,. y6 z& T( p5 P; c; n5 ~
                .gpio = DA850_USER_LED0,5 e$ s5 S$ R# x6 Z- f
                .name = "user_led0",
5 b6 `9 n' F- C6 _7 M3 E( e                .default_trigger = "default-on",
: q# d( m  a: ?$ |9 F, a        },6 w9 h' x, ~- W8 T8 E5 N# j
        {
+ w) m, _- q' q6 _# ^* j                .active_low = 0,
4 I) x% C, g9 T( n+ ?1 N                .gpio = DA850_USER_LED1,
/ X6 D& @8 n# q                .name = "user_led1",
7 H9 P* E; P$ Z2 f0 t' F6 j                .default_trigger = "default-on",
/ d2 U0 |6 }0 |" H' M        },
8 `6 W1 K9 R) f        {- M' w% y5 g# ^0 n; W" t1 H
                .active_low = 0,
) E/ z; W6 X. U+ D1 ^' R! g. {" A                .gpio = DA850_USER_LED2,
1 d3 Z) `8 K/ t$ y                .name = "user_led2",
" [3 ^% P# ~0 a: o5 O' B                .default_trigger = "default-on",1 R* d8 f0 O0 y  M
        },
3 y- n2 z" @) o& |6 T. l' u5 y% B        {
* F2 ]. @9 |) F* `8 s                .active_low = 0,9 Z2 Y/ G, i: i* D5 j- `
                .gpio = DA850_USER_LED3,2 M5 o, J8 O* {4 {/ q+ N( v: T
                .name = "user_led3",
$ v2 s7 p* T* ]* J$ m                .default_trigger = "default-on",
. G( F+ T. C5 m+ [* @; F0 l        },1 k. a/ F& G) t. p
};
5 P( b- s. E1 R' i6 P! [$ y% I1 G) E5 r7 c
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 V  I! \  n' `        .leds = da850_evm_tl_leds,
  q; a* Q& V/ F# _& ]6 h        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 d: h' m* D5 S/ q1 s};
2 w# c/ z1 ]8 ]! G& a3 r$ z! I/ F1 m( r# ^3 q! K: f  G4 l7 |
static void led_dev_release(struct device *dev)
8 d# k! M/ {3 m{/ E$ t: k7 ~/ p1 H
};% |0 t1 Z- G$ x5 o. Y6 {
. F- X  _% G8 c/ D5 ^* Y- I
static struct platform_device da850_evm_tl_leds_device = {
" ^4 y  k- D, q" P/ p4 n        .name                = "leds-gpio",
0 @6 m3 k9 r, q2 ?! m) w% R. y7 h! a        .id                = 1,& @! P* Z: K9 F; `$ y( k4 N
        .dev = {
# b- b! t. ]7 J' H. o: ^3 Q8 U                .platform_data = &da850_evm_tl_leds_pdata,  ^' K+ O8 a/ \
                .release = led_dev_release,& P- R# u" L8 E  u; X5 u' }
        }4 k4 W6 s1 X9 Q+ I( C" u+ }! T% C6 v
};4 p  z+ j6 X* e) k

! h7 z6 g3 t$ I* y: ustatic int __init led_platform_init(void)
8 l, l$ q8 o9 A' I1 I5 K! Y# d{; g) f; ~8 q1 l* o' w' f
        int ret;5 T: Q5 d: |& g  b! P0 ?" B
#if 0; c' N  i- D" E* R2 c# q1 e
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' Z2 t7 Q! ?! T+ H8 I2 y        if (ret)2 @1 P& X$ V8 h* [
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ `! \) l, ]1 i; |5 R                                "%d\n", ret);; u3 @! T0 Y; D* W8 ^0 S- u8 b
#endif: _; M  p. M' \, u
        ret = platform_device_register(&da850_evm_tl_leds_device);* n8 i8 Q% `6 H' S0 d
        if (ret)
& K+ R1 \& h0 X7 K0 i                pr_warning("Could not register som GPIO expander LEDS");
' y+ ^/ `4 t5 B        else
3 n6 E. H. F) ]( o1 E                printk(KERN_INFO "LED register sucessful!\n");
" ^$ R$ x  x$ ?4 r/ }4 t- ?; L: B( s2 ?+ b# Z, P- P1 S3 \; @6 E  G" w
        return ret;
7 i) s6 w& A' W( @, A- s}
, E) ?! i7 C. A; Z9 y, ^% ?$ O0 S
static void __exit led_platform_exit(void)
: ?. i6 ^& M) A2 o) B9 U0 x{
' L3 \& s# N0 B* s8 o9 n        platform_device_unregister(&da850_evm_tl_leds_device);
; i0 T% ^% T" C- [% h6 |( n. M- d/ ]$ v- i# H3 E
        printk(KERN_INFO "LED unregister!\n");7 J" l7 Z: v! J
}- ]. B/ {- @& K

% g0 ^+ F6 m1 \1 smodule_init(led_platform_init);/ r0 I" O8 o  p- \5 {' }9 d7 w0 \
module_exit(led_platform_exit);
2 K1 U9 T  T( v$ I/ B9 o
( F$ G& P: E& p0 \6 TMODULE_DESCRIPTION("Led platform driver");) ~6 n6 d" |' E2 E! c7 ~
MODULE_AUTHOR("Tronlong");6 C- J* n; J3 o9 I
MODULE_LICENSE("GPL");
  \& X* r3 k4 X- i+ g8 a' N. ]* ^
/ c( ^2 l6 Q# }% Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-17 09:38 , Processed in 0.039115 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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