程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; f! I, e* F- Y- n; L7 }, Z#include <linux/init.h>
$ N7 p% ]& B- g9 l% D#include <linux/module.h>
5 e6 m5 g9 u- z#include <linux/kernel.h>( T/ q, ~2 }2 o5 H3 {; j! F! e
#include <linux/types.h>
7 ?; Q: K! {: N- m7 t. R1 s#include <linux/gpio.h>
# z# x# y0 b- H* v9 ?#include <linux/leds.h>7 G! n' S8 k5 m9 x7 Y
#include <linux/platform_device.h>
, U" D& F4 w! p
6 B5 _! A7 K$ w+ E) ]#include <asm/mach-types.h>
8 C, F# p) u1 @6 C#include <asm/mach/arch.h>
2 U$ \8 P' d# d+ S, W/ @# k#include <mach/da8xx.h>
% G( J5 v( B& K3 O#include <mach/mux.h>, n& e* U% Y  f5 Y

, O; h: G- w" M: F1 a* X#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 M9 I) h8 E) c$ F
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 O5 V- r0 E7 B, D8 H9 s+ T#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 T! S- V" v' G( I1 J
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); G, B) ]2 k6 p9 q; e! ?- n

3 _( R0 F2 z1 |& p/* assign the tl som board LED-GPIOs*/
  v9 t' `) F' U/ Sstatic const short da850_evm_tl_user_led_pins[] = {
- f7 D5 y' ^: f" m& r9 q& w        /* These pins are definition at <mach/mux.h> file */
3 r, h4 O% q& ^( R. X( K& O3 x" v        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; l! ?, J! `  O' N( d
        -17 P* H$ ]2 @/ i9 M6 u& G$ X
};) Y2 N$ Z1 u* U# P0 r

, ]7 Q" B  m# M# e8 Mstatic struct gpio_led da850_evm_tl_leds[] = {
3 D0 ~+ r9 k4 |5 q$ P6 a        {" O: M, n, l  O5 h$ @* L) u
                .active_low = 0,& P3 E- ~. G6 T9 v7 q. S8 A) t
                .gpio = DA850_USER_LED0,# X) A7 m- ?6 y3 i% B$ {; N7 O
                .name = "user_led0",7 ~# |, B6 ?( C  _. c2 F
                .default_trigger = "default-on",
, x7 a% A& N6 B5 q7 g$ T4 \: U        },& O7 o2 h/ J5 F: G& C
        {
" f  P1 B0 @$ y* x0 N9 n8 W                .active_low = 0,8 e! P1 {9 S8 s5 z8 C
                .gpio = DA850_USER_LED1,
! I. F( m. N8 j3 i! L9 |                .name = "user_led1",$ P6 D: M5 Z  S3 B
                .default_trigger = "default-on",
& D: O( Q: x0 U& y) k        },
. K- U2 t# n- z( o' H& G; a        {
8 }2 r' v: u  P3 ]' j: u# A2 a                .active_low = 0,' G" E2 \1 X. Z6 R4 S
                .gpio = DA850_USER_LED2,; o8 y. t2 ~/ q5 c5 T6 m6 j
                .name = "user_led2",5 \, u2 O3 W( v8 B5 W
                .default_trigger = "default-on",2 j% f% K* n* P, T2 g! I
        },5 w1 S( h7 D+ {9 v% s
        {) H( r  F7 t- ^) V; V6 q9 I; s
                .active_low = 0,
" O! q* m9 \$ r- f# m- q                .gpio = DA850_USER_LED3,& l; @5 T/ T. f+ m4 K" ]
                .name = "user_led3",1 ~. N( {+ Y8 D, S
                .default_trigger = "default-on",
- V* @/ k8 I; a- ]        },
5 s' H0 L- a) V8 }5 J9 S};
; j) \! S7 T+ |8 a
& b- G, E& k( S" e- Ustatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# M# d! [* e# f0 {        .leds = da850_evm_tl_leds,
1 {+ V+ G$ [4 e2 l5 c) o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 O, u* K9 Q1 G, X};
1 w* Q4 U" a7 q
, Y' e1 o0 v; j+ G- S% `static void led_dev_release(struct device *dev)5 ]0 q& w2 [5 S. s( r+ ~" L' Z" O
{6 ?* P* o! |+ K2 D9 j% u! s$ a
};" {6 b1 Z/ x& E0 b" e

+ @& y+ W% h1 g5 Y% t, _static struct platform_device da850_evm_tl_leds_device = {
4 @7 M) h; A" e5 M: s: e* J! P8 C        .name                = "leds-gpio",
5 z3 K: ]! V! M2 r: \2 K        .id                = 1,# F3 L& t- G* j' r  l% F. {5 G
        .dev = {
4 o# H% G& f" D. K5 ?; Q/ K: f% L                .platform_data = &da850_evm_tl_leds_pdata,
( I. U$ X6 G7 Y! x& {                .release = led_dev_release,# g' D: G9 @3 x( V# j/ x/ x
        }) m+ C0 g( @. J" F0 K8 ^% u
};
% `: P4 Y9 D7 k! j; K8 `. U  T8 p( ~" x8 A) C: Z+ }7 C
static int __init led_platform_init(void)
6 g1 |3 j; R; G# N' {{
% H! E/ @3 n+ r        int ret;  x. T) @- r) j0 @# Q. B
#if 0
  {7 f+ c+ x! l$ v$ r        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, W( A7 ~; M# U; T8 `; n
        if (ret)
( ~0 P( G: p3 d6 a0 B* W# O: g4 Y% Z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 g! [$ k* q& k% i8 @/ ~
                                "%d\n", ret);5 d7 V- Z2 H/ `- S: O
#endif
: m& v$ W& f0 ?1 b        ret = platform_device_register(&da850_evm_tl_leds_device);
2 j6 h$ X5 {/ h. y4 l8 U6 e5 {        if (ret)! W8 z! A8 W; F* J1 F7 y
                pr_warning("Could not register som GPIO expander LEDS");
8 v8 a7 E- R/ I9 N  Y0 ^        else
* M& B1 q9 a) W& W' R) w                printk(KERN_INFO "LED register sucessful!\n");
! o- _3 s7 @0 e. A, d$ P* {
/ D( o1 w3 I9 _% U# b! d        return ret;
* F2 k& {& T5 I" D}$ }# B7 D3 Q/ D  \7 }' S

9 j$ R8 E6 J: y" astatic void __exit led_platform_exit(void)
" i) E* z4 @! [$ T" a{
) H* J8 n  Y; T( ], B, |- h        platform_device_unregister(&da850_evm_tl_leds_device);/ h4 v% T3 L: V
- A+ ~! H% d; R
        printk(KERN_INFO "LED unregister!\n");
9 J  X0 _7 n  y" z$ o: n, f2 y9 a}0 C# l7 c: G' b3 J4 G7 N

9 A+ N6 ?* ]! Q1 ~2 i! Mmodule_init(led_platform_init);, c. p" m# j9 d$ w1 j
module_exit(led_platform_exit);
) c4 i, D1 n7 [  \3 w7 Y5 }1 a* P! [5 S4 d/ h! \
MODULE_DESCRIPTION("Led platform driver");; [8 o% I/ A" Q* \+ o! p0 S
MODULE_AUTHOR("Tronlong");; h: `1 E* B2 O. K
MODULE_LICENSE("GPL");# T8 M  Y* S, d" ]4 s% T) O
. U8 ^: T( y4 k3 W. T( H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 07:08 , Processed in 0.042278 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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