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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 G: S8 N% a' L# U. z- E/ N#include <linux/init.h>
( s7 G  R1 K+ _1 s% `#include <linux/module.h>
3 ]( \' F7 k+ O/ O, W#include <linux/kernel.h>( j0 G: V2 f' |, u- \3 H! z2 V
#include <linux/types.h>3 I; ]2 I* N" L3 P2 G
#include <linux/gpio.h>
9 ?  U. r  Y1 H$ n) n3 J. `#include <linux/leds.h>0 I$ z3 S% _4 O5 C, s
#include <linux/platform_device.h>
7 b2 r% |6 M7 @7 f+ C3 }8 w0 Z" Q
5 q, I/ e! m6 T- X9 x#include <asm/mach-types.h>
) v& K1 l/ \8 N, @$ V3 \#include <asm/mach/arch.h>' n/ e6 F! M% H$ b8 ~! i' I
#include <mach/da8xx.h>
4 h" G8 {* i/ q, M( I" _#include <mach/mux.h>% h0 k. E: w7 }: j
! @+ _+ Z% J- E, r, W9 ~
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' C* e7 o2 k2 y7 v
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 p- Q) S4 ^- L; n) {1 W1 g
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 A- P/ x7 |4 s% p5 E7 O2 r/ {
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 A% N) P+ D3 k% M
7 h: H( ?+ n9 U/ |/* assign the tl som board LED-GPIOs*/
4 t8 \0 R- c3 n$ x4 U, T9 R+ Istatic const short da850_evm_tl_user_led_pins[] = {# s) ~; Y) M7 e# a+ h5 s
        /* These pins are definition at <mach/mux.h> file */
; o% J7 h; e- @. z) h- A        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 n& s0 |6 L  F1 f1 Q
        -1' L9 m1 e1 n7 |+ Y
};' W1 ^! |) {8 ~$ u9 L
' p# e3 v9 ~3 |0 [- f% h( a" {
static struct gpio_led da850_evm_tl_leds[] = {
0 I$ u9 K; L% `) @+ C        {
8 t; X) Z6 E! Z" Z; U# v3 {' v                .active_low = 0,
5 y5 e+ ^5 `' l                .gpio = DA850_USER_LED0,9 b/ O  H3 X0 ]1 M
                .name = "user_led0",
" e, r0 y8 j" k4 W+ O$ E" |7 {# u/ }                .default_trigger = "default-on",
6 o& W3 j9 R" p  x1 w0 w7 c5 i        }," x, R- e& U/ U# y5 F
        {3 c/ d/ q8 m+ @9 r. r, n& v! l
                .active_low = 0,5 L5 d7 g! X1 F  ~5 p: d
                .gpio = DA850_USER_LED1,2 C& Q3 i0 }$ i" I
                .name = "user_led1",# D! q! S, e1 e1 J3 R
                .default_trigger = "default-on",
* w& p8 J  k0 E4 b        },, ^3 b8 Z! A" G  K) I( F
        {( F3 l7 Q* Z8 E5 F; ?- J" Y
                .active_low = 0,# h* X& S% y+ [- K9 s
                .gpio = DA850_USER_LED2,0 d4 a  c( h! O! B
                .name = "user_led2",
  k  x1 t  q% U9 P3 F                .default_trigger = "default-on",
% _' d6 {" O8 }( G        },
& U" r. P1 M. N" E, V8 ^" w        {: q/ d& y3 j$ p2 b
                .active_low = 0,$ Q, x$ e3 o8 f' }+ I
                .gpio = DA850_USER_LED3,5 r; [6 L+ R% M
                .name = "user_led3",
, s: O& x$ Q) s, |* R0 E. M                .default_trigger = "default-on",
# O5 }) _; F& [, e4 D" Z9 h$ x        },, F: Q8 e5 l6 h. N. h
};
1 ]/ w: n8 a$ k: Y7 O; M1 O: D( F' ~( g2 m: f
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% v4 m  I! A) h# S+ s6 ?
        .leds = da850_evm_tl_leds,
$ C% G, e" g( c        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; j6 H# u7 T4 Z) K% l- C* x};) N) y% T4 a. k* _4 b

" ]" E- M; {7 w  h% h' D) l* `static void led_dev_release(struct device *dev)
7 {. F; t3 @& V{
2 t/ {* J* Z6 ~2 k. C};) |/ v* n& O$ M7 N: d! c
+ f' ~) e$ h- ~9 r
static struct platform_device da850_evm_tl_leds_device = {. l* R, t* R' f  A* o
        .name                = "leds-gpio",
; n0 c+ l' h3 V9 R) Q* H        .id                = 1,
) h( M) D9 a* i& F" K# q, A        .dev = {
* X; T% Z, p7 @  t2 T  W. H                .platform_data = &da850_evm_tl_leds_pdata,
$ w8 \: N2 M% y& K& L                .release = led_dev_release,
8 ?) ^# b9 G# W) p, n0 a* Z+ k" }        }$ J# C6 d" y! x* J$ h7 o
};
9 L% c" E+ s7 m6 ]7 e9 P0 Q) E, F9 J7 x* R  u3 d3 _1 ?0 }! X
static int __init led_platform_init(void)' X8 q+ |) e" [+ o! j
{; B8 k5 V5 x+ `% F* d* W  ^1 S
        int ret;
: i8 Z$ j. D: F- I#if 0: X5 X: S; c* f
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. k' y) |; q- g; H6 j
        if (ret)  Y: h2 s6 P2 J. @
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 g, }$ j- Y  ?" Q% F% m                                "%d\n", ret);! K" u" |! J) x5 h8 W* E
#endif
$ u. h, k1 V7 n: {        ret = platform_device_register(&da850_evm_tl_leds_device);$ V+ }4 J# V2 l8 ~0 f( S8 U( a$ q
        if (ret)9 L4 G9 L& q( Y. a# l: N# w
                pr_warning("Could not register som GPIO expander LEDS");
3 P  M% U8 f: d4 _) ]        else
0 o9 H/ r( S9 m/ t* V; v                printk(KERN_INFO "LED register sucessful!\n");- U# F. ?9 d- _

  V, g( n+ I( S8 ?; g- I% L        return ret;
4 H( ^  F! P8 c4 f# o- I6 }}4 o2 \4 t3 [5 `2 A

! L9 g6 F5 i0 astatic void __exit led_platform_exit(void)
% \. {. a, j' V{
9 y. ?. P, U% L+ w7 s" K9 O        platform_device_unregister(&da850_evm_tl_leds_device);
2 c( Y# B8 G* c: u/ X8 ?+ e: S' ?" F2 e" i' I; k, u( x
        printk(KERN_INFO "LED unregister!\n");
  z* a8 F1 |* u% `0 {}  n% m9 k6 F2 @) W

3 n% [3 L4 [1 fmodule_init(led_platform_init);
1 `' Y3 U2 y1 e! k8 T8 Ymodule_exit(led_platform_exit);
) t3 v  Z) F! O6 k
& g) N7 U- A# m4 A/ qMODULE_DESCRIPTION("Led platform driver");; o" U6 H' Q# a% i! ?( v/ W
MODULE_AUTHOR("Tronlong");/ ^" u' U" d" l7 P+ Q
MODULE_LICENSE("GPL");
8 n- k- O; t0 k( j' l. m6 }; o! }. [, ~% Q- _, J8 R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-10 21:31 , Processed in 0.039361 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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