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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ w; i* R* @7 |8 G. O
#include <linux/init.h>
# o+ i4 Q& A5 ?9 o#include <linux/module.h>: I0 N: L8 i1 [3 F5 E6 a1 u/ h
#include <linux/kernel.h>& o# p+ f" g3 u2 K* x
#include <linux/types.h>
' y, c, H& w; F) U% S#include <linux/gpio.h>
- R0 Q' H& q* Q+ a( @#include <linux/leds.h>
. h9 _8 X1 F4 t& u#include <linux/platform_device.h>
$ U; M( k8 ^+ k' V. w
. k' B% Y# |) Q; j1 P( c7 v& g#include <asm/mach-types.h>
- q, \0 B8 J9 F% Q8 F# ^9 J#include <asm/mach/arch.h>; Y( r* X$ ?/ a6 o% v! i* ?) _
#include <mach/da8xx.h># o* ~& D8 Z4 M3 p- y0 w
#include <mach/mux.h>% k% i5 D0 b$ b/ J3 \
0 H& y+ Q# B4 f6 F# ]
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, ]; l9 K, I7 I* H6 O# y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 h( M4 j% y! o( ~' l#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); S9 a' c5 r: d1 o9 F" {( a
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 {* X5 x  V% T* S. ?
: c7 B/ q# {2 g) w6 V/* assign the tl som board LED-GPIOs*/
! X0 K! Y0 [! a3 gstatic const short da850_evm_tl_user_led_pins[] = {6 \# C- j; U+ D+ n
        /* These pins are definition at <mach/mux.h> file */
# b7 I4 U( H' F% ]1 r" u        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 V1 l+ W, ^( a/ X        -1
2 X% S; ?/ O$ Y};2 J: H* B3 ]- F! ~2 [

6 _1 j6 u+ l- p4 fstatic struct gpio_led da850_evm_tl_leds[] = {
- E" `4 p% C0 k        {: d8 q3 p+ U6 {
                .active_low = 0,% L: F, @- G8 A. s
                .gpio = DA850_USER_LED0,
+ m) U1 j6 U" ]8 _3 ^( ]                .name = "user_led0",- h' O" o( a  J& g5 N7 J
                .default_trigger = "default-on",0 [3 Z7 Z& ^+ a1 @) g
        },
/ M9 x6 t$ O; b+ S0 [        {
/ O; h3 n* A( j! @6 w7 `                .active_low = 0," P& B5 c% l" x. R
                .gpio = DA850_USER_LED1,
) ^+ \. s9 i5 F% X. m                .name = "user_led1",
1 F2 u7 C: X$ ^4 z' t                .default_trigger = "default-on",! [# {/ n; {8 P2 N  e
        },
/ n: {3 t! \& ~* U! v        {# p2 E8 d( |4 o2 l& W0 A. k
                .active_low = 0,
5 x8 M: l9 Z! w7 `: k6 |( ]                .gpio = DA850_USER_LED2,$ X5 {3 D3 k/ c0 H' T  K7 S4 I9 Q
                .name = "user_led2",2 m# q' o2 b( F; n5 ~9 e9 _
                .default_trigger = "default-on",
& B3 x. S3 Z! A1 y: |* b        },1 h0 T* ~2 N4 H1 `
        {
/ U. ~: o% W' t. X* h4 C4 ~4 y                .active_low = 0,) ?1 r9 p  [+ P5 z
                .gpio = DA850_USER_LED3,: a; x! y) l& Q
                .name = "user_led3",/ ?( F  u4 u1 [6 U/ e- q  J3 J
                .default_trigger = "default-on",- k# k5 p% H# v' w7 Y/ c- b
        },
& p. h* Z) I1 f2 [1 ]3 B! M};. B$ l! y7 B/ s7 L; X, C/ y

1 ?: T, \4 ], P- v  z6 ~% |& Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* i( Q! x% ]  i( i8 e2 V        .leds = da850_evm_tl_leds,
! `8 f. a1 A" x/ \% P        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 ~. I! G8 N, O) o};
$ I2 H1 y# v4 W( A7 J( s0 g! K
0 e$ F2 X) n$ d' p. |& Jstatic void led_dev_release(struct device *dev)
8 [4 P6 M7 u3 H2 f4 y- r{
$ e9 B& ]8 I- Q};
* b2 j- D. P: B2 T/ c  L7 y" _. S2 y( @; P+ y; E
static struct platform_device da850_evm_tl_leds_device = {+ q" Z0 w4 P9 w0 Z8 d! `: k
        .name                = "leds-gpio",2 T. h$ U6 T7 i0 f
        .id                = 1,
- S4 }, }- w* ]  U, `) L        .dev = {* \/ q( d! V# C% s5 H! `! t6 K
                .platform_data = &da850_evm_tl_leds_pdata,1 L) U$ c9 p. _5 _) \' A+ X
                .release = led_dev_release,/ g4 J* N9 f1 U5 ]$ h
        }3 o* V6 D" d$ h& Q
};
4 `$ Y7 m2 X+ z6 A: C& B- |
# {- m7 ?$ }) w4 astatic int __init led_platform_init(void)
6 }. E/ w; \0 g& V$ v; [{6 F. ?& I, R. @; @8 i" L
        int ret;
) ]' G' G( c1 d/ `6 S& _/ n#if 0: |1 v7 H5 N" n* _; v- }) I4 n
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. T3 e- f! c/ n1 r/ j- ~        if (ret)
5 x, N# [  @% @/ N. J                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". }/ L  C9 Y( r0 W
                                "%d\n", ret);
( x/ E' ?) ~5 T. z  g- z#endif% b; O8 e& i& H6 |  X' Q( |1 `
        ret = platform_device_register(&da850_evm_tl_leds_device);2 d: w( j8 C% \0 @% \" g
        if (ret)- ^; O( A/ k1 P# s6 }7 {
                pr_warning("Could not register som GPIO expander LEDS");
; O( o1 B/ Z  W' N6 [        else* M0 [, Y2 x3 f; _6 c0 c$ U
                printk(KERN_INFO "LED register sucessful!\n");3 Y0 x7 p6 c) q$ |$ V

$ D' z5 V; K2 m- f        return ret;
9 ]. O3 c5 l) Y}" q5 d* D: k4 c8 Y+ Y

/ e; \1 n6 p" hstatic void __exit led_platform_exit(void)
9 N6 S; K( w$ T2 W) e{9 a6 H$ }2 M/ H9 O! ?( o) ^
        platform_device_unregister(&da850_evm_tl_leds_device);3 b6 D4 m4 K' |* N9 k5 ^5 H+ k; l

5 y/ f- O, P' Y" H4 J        printk(KERN_INFO "LED unregister!\n");+ I3 B6 E/ z& \* W
}& m+ Z1 d% S# S; K

9 R" n" x. [# i1 imodule_init(led_platform_init);
- T2 ~- I3 K; f6 f* xmodule_exit(led_platform_exit);
* d7 T2 w9 \9 j* J! x4 _& z
4 d( U6 }5 P( d4 K, Q  V9 yMODULE_DESCRIPTION("Led platform driver");
! k% M4 |; J+ ]9 A" w  cMODULE_AUTHOR("Tronlong");+ Y" V! P6 v& U/ ]( @$ u
MODULE_LICENSE("GPL");2 E# F+ H% t9 A* Q) D
; Y$ V9 s4 Y1 H, w. |8 k/ q7 k6 i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-6 15:16 , Processed in 0.044608 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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