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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 L, p7 \3 P4 P) R% A. A4 c9 ~* I
#include <linux/init.h>
, d3 Q& C# K+ d: O# v#include <linux/module.h>/ S* l1 y0 \  t- P
#include <linux/kernel.h>& U( Y, g/ C1 [! p
#include <linux/types.h>5 t" \, \* A+ H6 O! ~2 b. N
#include <linux/gpio.h>
: l4 o! b7 I0 w0 |#include <linux/leds.h>
  H0 x# u, N+ ^# a#include <linux/platform_device.h>. t/ K4 ~5 I4 S9 Z
  G. p# y0 M5 g4 R- p
#include <asm/mach-types.h>$ x; n+ C* I2 }5 S  E2 C
#include <asm/mach/arch.h>  m7 m! k# x' G. N, J: f
#include <mach/da8xx.h>" E. T! a% `" P/ \5 b# x1 X! `
#include <mach/mux.h>
7 `- t0 j8 R8 ~* R7 F2 D
5 A$ q7 _) z$ _2 y7 i* c#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' s) A. {2 Q8 n' C( R  p; j
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 I. V# @8 t1 H5 X; S6 b6 E#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" [- M( S6 O) v- L! N2 S#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 j' N# D* w# j- p
% `1 {9 ?; w. [$ E/ o6 H7 O
/* assign the tl som board LED-GPIOs*/
# l$ |9 t" Q6 ^$ [& ~2 l: r; Estatic const short da850_evm_tl_user_led_pins[] = {
4 _6 R* a- `; Z5 p        /* These pins are definition at <mach/mux.h> file */! b( E' g# z+ [' G% q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 m" X" G- p, K) I. Y4 u        -17 Z" p" u8 T* e, y" H/ `+ D
};
! W2 g" Z$ T. X2 T& x) d, Z9 r: L- u3 X# `8 x
static struct gpio_led da850_evm_tl_leds[] = {6 J6 F* V& y# O: V4 N; a5 H
        {; S6 `- n/ H4 L+ L
                .active_low = 0,
) h" X' Y2 y4 t: d' @                .gpio = DA850_USER_LED0,
8 V. _3 }- W4 T                .name = "user_led0",
7 s4 x  i* `9 W" K" \' |                .default_trigger = "default-on",
" J; j  \) a7 s/ b% m) M        },* G4 ]2 K, b" b) @0 ]( q
        {2 P; g+ c! S- T7 F
                .active_low = 0,
( `1 {' H& P! k5 e" O. B4 I. ?/ B. W2 d! u                .gpio = DA850_USER_LED1,5 d$ P2 _9 N7 s& |( a" M) E  ~" ^
                .name = "user_led1",0 }3 I' k. W" p
                .default_trigger = "default-on",
5 q! }+ m- Q: [& g: _  z7 S        },
' H& V6 W1 Z+ o. J# i! D' {        {
& L& y( q, C% l/ Z' y" _: ~                .active_low = 0,/ S8 v: w/ s" m* M+ X* p+ }
                .gpio = DA850_USER_LED2,# Q2 C5 Z0 o5 Q4 o
                .name = "user_led2",
8 A3 H  D$ N* P! S                .default_trigger = "default-on",
5 z, ]- X; e" k% k" f        },- Z" C9 u' r; p* l3 w+ @0 L8 s3 g
        {9 [. e: K$ W% E% c7 e$ u) Y  o  |( G
                .active_low = 0,
! z$ m: |. d: _. g. ]                .gpio = DA850_USER_LED3,0 n+ _' ^; t9 |# l5 p
                .name = "user_led3",$ K! G- ^4 f1 r* E, ~
                .default_trigger = "default-on",. X7 @: b5 m6 v( w2 ^; x3 }  @
        },
! S! k# v: {4 ]: Q. b0 q};
3 ?! `+ Q2 x. H
% W" h0 ~  P, H5 K* O4 Astatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' x. O' S6 ]5 z. t+ n
        .leds = da850_evm_tl_leds,2 u; x2 u) N& U* J- A4 `# \9 q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 e  \7 ?. F/ S  N% n3 l0 V7 ~
};
6 g# I4 a  i5 d, D+ e/ F# _+ G6 H0 w8 K/ q: A. N; d* Y
static void led_dev_release(struct device *dev)
- F2 Q7 Y) Y8 e2 @* k4 `- o5 @6 `{+ \9 r/ T2 U- v0 l% u2 v. b. `1 i
};8 }9 F8 O) h9 O# d! v  A- T
: Y3 C3 X' F" p: Z% h
static struct platform_device da850_evm_tl_leds_device = {
$ B3 z. r$ Y6 A        .name                = "leds-gpio",5 A  f, ~- D5 Y" U3 y% s( v9 J$ O, I
        .id                = 1,- {9 D2 H% e7 N
        .dev = {2 P' ^) u7 \; {4 ^! I6 E; Y
                .platform_data = &da850_evm_tl_leds_pdata,
: K0 D: r' t! A8 |- f, z                .release = led_dev_release,/ w* o% W8 B" L4 Z- P/ M! ]
        }3 G/ \  `8 h' ^) |) s5 @6 r
};
$ _. Y8 J( z5 g- Y. @1 n) m9 V
static int __init led_platform_init(void)/ X, t. G2 x0 g0 B; h
{
" ^4 j1 F' u' K4 z5 E4 o- b        int ret;! C! j, A; r# o8 `) m7 p
#if 0
) [/ ^, @% B4 B$ i% E/ e! Q        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ ?' |& c% y3 f2 v) Q        if (ret)- w+ W6 h( ~& P! O" s# m' S7 t- g8 B
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 }  w* ^+ D" `% ?' d                                "%d\n", ret);
$ z- C% k7 A+ c4 i#endif: }- k# e! n2 D" Q9 X
        ret = platform_device_register(&da850_evm_tl_leds_device);
: t2 A! g" d- ?  u4 C9 F) g        if (ret)" C; S, F' p( \8 h, \( _6 D
                pr_warning("Could not register som GPIO expander LEDS");
4 c8 j- U6 ]# d4 O, C        else
8 i! |! o! {! V. T8 B' V                printk(KERN_INFO "LED register sucessful!\n");0 X5 g/ L' _5 A& m1 U* o, z" z) _
& c- U: t" {  c6 L2 s$ B; S
        return ret;6 Y8 j9 @" T4 W; @" h
}; X; A9 J. l  c

- Q% R6 ?# O  dstatic void __exit led_platform_exit(void)' v/ z5 ?; X! d9 W
{* S/ K$ V$ q. b7 B1 F; m
        platform_device_unregister(&da850_evm_tl_leds_device);
" Q+ @( ]# w) K- `9 O( B, f/ k3 S6 Y2 A8 N+ _
        printk(KERN_INFO "LED unregister!\n");
% n9 n1 X1 I9 T0 d1 b}* q5 G3 m5 t  x

# U, G$ e) |8 S/ o1 i9 v  ^module_init(led_platform_init);
5 w+ [* c2 S7 O5 b7 h4 dmodule_exit(led_platform_exit);
( M1 g9 ~2 W0 }, `& ]7 l) p( \; o  F1 o, W9 T: q
MODULE_DESCRIPTION("Led platform driver");' j! ~4 K, K% L8 A2 i( {
MODULE_AUTHOR("Tronlong");5 V; P! j$ q: ~% n
MODULE_LICENSE("GPL");
3 B9 V, F0 ?3 L- y; {; u% D1 c1 [' t, U6 X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-17 11:46 , Processed in 0.046820 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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