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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; `8 z1 K7 ]0 J9 C% c+ E#include <linux/init.h>6 @( M6 t9 j# h/ E1 L
#include <linux/module.h># P2 y) W7 T. r( Y4 m( g; J2 O
#include <linux/kernel.h>/ d+ N" C3 M# n4 Z% e+ i
#include <linux/types.h>: J5 ?: @2 d' e1 P; c& M
#include <linux/gpio.h>
7 E2 `2 k/ a! c1 c! h- D#include <linux/leds.h>1 `/ q# F  J# F3 A
#include <linux/platform_device.h>3 G+ T/ h2 U( a1 X. x( l
) e+ n+ E# e) D  C# J% L
#include <asm/mach-types.h>( w8 Z! x' d+ \4 a4 q; [
#include <asm/mach/arch.h>! E! Z* H8 t: L) |# ]( S! m/ e* k- d
#include <mach/da8xx.h>+ @6 n% V. A, C2 }+ r) }3 w
#include <mach/mux.h>
" o/ D4 ~" \+ s1 L
$ s# r) o5 J- F1 F$ c6 P" p#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); M" U4 Q  [5 w& ?3 A4 P1 y) Z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 i  b3 c7 P/ \' x* i! ]0 p2 |
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; {# P, G! r/ Y8 w* N7 g) T#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& y; T% W5 A7 G: P& A, l1 x+ a& C' e& T1 ]$ {$ l/ ^- m
/* assign the tl som board LED-GPIOs*/
% K3 b+ z7 O" K/ r6 l9 ystatic const short da850_evm_tl_user_led_pins[] = {
$ z' r6 E$ X5 o. }5 e        /* These pins are definition at <mach/mux.h> file */
4 r7 T2 I& E4 Z0 V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 d0 r; Q" A, s( H0 R! o4 ?/ {$ E        -14 E7 k! u2 o; Y# A& Y6 p# P9 x! T
};9 x, j2 w. g6 u+ ]( a. U6 q8 W
4 P; D$ T5 H& |- r( Z* V7 N$ X
static struct gpio_led da850_evm_tl_leds[] = {
! t% w' \* @: L  y5 _        {4 O: v, H* Y4 s* w
                .active_low = 0," @4 W4 x, P/ x% C$ R- l
                .gpio = DA850_USER_LED0," }3 L' C  ?: g: V1 r8 V
                .name = "user_led0",3 K6 H3 \3 `' h0 h
                .default_trigger = "default-on",/ c" |6 ^0 ~/ E
        },& \# d% M! _. J  H7 w2 O, X
        {
  {# \6 B) P8 D5 V% E: Q8 U                .active_low = 0,; W2 r) k) i$ Z( |
                .gpio = DA850_USER_LED1,. g& a: ?# I8 b7 u6 f
                .name = "user_led1",
, |' U. ]6 d1 o2 p" W% z                .default_trigger = "default-on",
8 ~8 k' g  a) ?5 {5 E6 l% g        },
1 i7 n" N2 ^) ]        {" B$ }, q8 n4 z$ T  b& Y; [
                .active_low = 0,
, y5 @9 P  `( [& Y                .gpio = DA850_USER_LED2,% N+ b' a4 j+ o. d3 y4 t2 P* j
                .name = "user_led2",
& s7 h& V- i# D- G  t6 K                .default_trigger = "default-on",( ~4 g( U) b1 a5 P
        },( q; V9 Z  x% T3 ]! u' J6 w. e
        {
! o" Z% Y9 ?0 ]5 z" c4 _: t                .active_low = 0,
7 M: S  p3 j! o( l4 j7 P& R- s" a) V                .gpio = DA850_USER_LED3,
. P3 \! @7 H3 _8 s, b                .name = "user_led3",
( R$ O" Z% J/ Q% q! g6 |                .default_trigger = "default-on",
. r; a7 M) g# C1 D) s! T3 y        },
; }4 h& T  X; N};' }7 H9 h' p; M4 K8 U

& g' P* ~8 D' p4 u; ~/ W5 Q- S0 Nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; ?3 S, h9 j7 S( a2 h5 B        .leds = da850_evm_tl_leds,& Z7 d( y* M- S: w
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  I" ~# H( i: S% L' F4 c
};
/ `, U! }$ p; S: z. Z9 V: ?7 {% Y) \& }9 _. G
static void led_dev_release(struct device *dev)
9 ~1 }% Z& e: i1 e4 q{- T1 N. K$ R% c7 G! _: ?" T; V
};
1 `4 F; o; X9 H) n1 J
* T( F% c7 {' _; }( X2 ^static struct platform_device da850_evm_tl_leds_device = {  y  v8 L8 Z9 m6 o0 g" {* p/ L
        .name                = "leds-gpio",% h7 Q+ D: a: ?$ ~/ B( }$ w
        .id                = 1,: G+ ~* A% m' Z2 w4 V, L) t
        .dev = {
: o* y4 |- G* h# s                .platform_data = &da850_evm_tl_leds_pdata,- r7 {1 e- c3 x6 W! k
                .release = led_dev_release,
. \0 `& ]/ w; }1 Y2 z" i        }
3 x' \! a- p# k5 }5 @5 h};
& s+ H$ K2 P0 @% r8 u( l
( C$ ^9 u% {, F7 A9 Ostatic int __init led_platform_init(void)4 ^" y) G, K% ]9 P! T+ H5 T
{
( _9 O) Z+ `6 Y/ V7 e- {( `- X        int ret;- W4 s3 L; A" H9 r- \
#if 0
( M$ f8 H$ D& R        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! ], B' l0 K8 L5 A9 E5 N( U        if (ret)" P/ `4 X6 D% e+ v3 r* J' n- R
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": s* h8 J% P" r
                                "%d\n", ret);
0 R; K" a# D+ [% K* d/ y2 u9 _$ G#endif: A- {, j1 D3 f# t7 }: j
        ret = platform_device_register(&da850_evm_tl_leds_device);
0 L, N- g1 s, Q% {$ C6 ~' v        if (ret)' O$ f& _6 V# ~4 ~
                pr_warning("Could not register som GPIO expander LEDS");; @1 G0 m/ u# Y, s7 W# {4 W$ f
        else
0 \) d. s/ h* ~: I- q! Y7 D4 h/ F                printk(KERN_INFO "LED register sucessful!\n");0 m* ^% z& R* `1 v- e! f2 M

7 ]3 v$ I5 P2 b4 Y' _) Y        return ret;
* J8 `# l; ?: I. p% M0 L9 s}3 x% E3 O7 I3 T- l6 w0 d

, c0 G0 P4 K/ Z. C$ m1 S& Kstatic void __exit led_platform_exit(void)
8 A. |: o; w+ N{
. m; p! \2 V! d% F  E, T        platform_device_unregister(&da850_evm_tl_leds_device);
; r* B, [/ ?, h- h* q3 T% P- e. z5 w+ I* M5 o9 ^
        printk(KERN_INFO "LED unregister!\n");( F, H- o! v7 [, e9 p6 u" V' F2 l+ H
}
8 H( R; k1 g& z/ D% A# }
* A% W8 c! @" u. k, rmodule_init(led_platform_init);
( d- r0 Z, h) I1 X8 `; ?- L( smodule_exit(led_platform_exit);! m5 V- s4 g1 s6 d6 T" ?, G
* F' W$ G9 w: R1 A) j  J
MODULE_DESCRIPTION("Led platform driver");
7 j) ^  y0 H; D# c7 {8 }MODULE_AUTHOR("Tronlong");5 I' {, ]- U5 z* M& r& Y
MODULE_LICENSE("GPL");
+ V9 u! {/ `2 l; `
. ?$ B$ I6 I& x$ y" P" Z" _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-28 09:21 , Processed in 0.045444 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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