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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 Q" C- M% b% j$ L2 I
#include <linux/init.h>6 ]3 M  F) _* K0 K; @' B+ G
#include <linux/module.h>. t: R% o8 p4 i: j
#include <linux/kernel.h>
2 u# n6 g  Q- `#include <linux/types.h>9 L2 Q. `& V; W  e. c
#include <linux/gpio.h>
1 ~  z! }( d( L/ D#include <linux/leds.h>0 j: p% f: T# a. X
#include <linux/platform_device.h>
& |* u! E/ I" E  e( T4 `8 l/ v$ }8 }" @  m! }
#include <asm/mach-types.h>
6 ]$ C. B) y  u$ p$ O#include <asm/mach/arch.h>( |* `( [% ~/ |
#include <mach/da8xx.h>9 q) ^7 v5 B: T' ?" v7 V1 ]
#include <mach/mux.h>
# m7 J6 {  a% s' w' D3 W
# j' x0 ^; o/ ]#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( P/ G. z+ r! J8 k/ c$ q9 p+ S
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ o" Q1 ]& ]# ]. a/ X# r$ |, [, c
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
* ]# b/ ]7 y6 R4 w* G) `#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 W! ?. n) `' p9 C- _
; L& `, B1 R6 O' P' U
/* assign the tl som board LED-GPIOs*/: C4 y) t9 h& v% H8 ], q. B% D( @, o
static const short da850_evm_tl_user_led_pins[] = {& X9 Z9 W5 z  C* x: r6 G# A
        /* These pins are definition at <mach/mux.h> file */& W, \% V' P+ n1 p2 ?. W
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* H. c8 e7 U  p; r1 _5 S/ R        -1
  f3 B/ J/ ^' c/ d' r2 l};
4 J* o  ]8 Q1 f8 V8 t
) Y1 @, I& Q6 r8 q  I( d: R9 e, istatic struct gpio_led da850_evm_tl_leds[] = {3 q9 |5 ^" ~, y& X4 g8 }
        {
9 R, x% N5 z9 ^+ x                .active_low = 0,
5 y; x# q1 Z8 |3 H3 _                .gpio = DA850_USER_LED0,
5 ?9 T/ s+ N) U. B' h* {                .name = "user_led0",
. o0 |' U1 r/ h6 ^5 \                .default_trigger = "default-on",& ]7 U3 j* H6 {# K3 c/ m. H+ e
        },
; j8 k* G5 I% X9 h! e+ j2 w! d        {& b# e& S) x9 J3 P! P
                .active_low = 0,
4 a. ]) b- p9 }2 v                .gpio = DA850_USER_LED1,
/ z3 a$ ]' r( `, i7 P. r                .name = "user_led1",
$ g3 o, {* V! B; v; d4 ~- ?+ N                .default_trigger = "default-on",  I5 M- t9 G6 \- A6 s% z
        },
6 l3 g( B# i) Q; Z        {
$ V3 E" G8 N% J1 k$ c6 [                .active_low = 0,, a2 U2 a! ]  F! e. k  x
                .gpio = DA850_USER_LED2,
0 M" y3 Y+ d, t                .name = "user_led2",
: a* f/ \- ^$ i+ X: h* K3 H' f$ w. e                .default_trigger = "default-on",
. Z: M  m; }1 h. ?0 W5 B. [0 Z        },# H& X' Y- U* [1 [8 W  O7 G
        {0 S& f: G/ f. v& g4 s
                .active_low = 0,$ W% g$ H5 M' v
                .gpio = DA850_USER_LED3,
+ G% t) b- ?: c                .name = "user_led3",
3 _7 C7 l& h  u" _0 W9 X( s                .default_trigger = "default-on",3 ~+ E/ q0 x$ i) n6 [1 S
        },
( |) y* a4 n! c8 ^" \7 v% z- U};
+ `: O: H7 j$ o3 C$ i! H5 J! k4 \# W- c7 i% i: C! c
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 [- K9 p% e- t# {2 s1 [
        .leds = da850_evm_tl_leds,1 S5 v# g' o* H  B2 q  j
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) o: v2 L$ G& h4 p. Y6 W. }};
% j4 I. `; Z3 v& C2 q  u1 u& a( y2 K$ `: \. p( e+ D2 M
static void led_dev_release(struct device *dev): b: s' |0 T+ ^6 `( t
{  l/ b. z% J* E7 t: g& |
};* O! L2 m: \& j
( h7 M9 J, b9 p' ]! y" O8 T
static struct platform_device da850_evm_tl_leds_device = {
! U0 Y% ]9 _" H* W        .name                = "leds-gpio",/ {: l8 K& Z- \* T" F5 C# L8 ?$ w
        .id                = 1,
( K" q7 C  x9 e7 G8 @        .dev = {2 c* {0 y  i7 a! D6 S, X
                .platform_data = &da850_evm_tl_leds_pdata,- S2 t( N5 j/ \! l# G
                .release = led_dev_release,# n0 g3 w; x* Y9 Y! O/ h; F# x
        }
, h7 v$ O  J# z1 P" x};
+ |2 J" n7 H. G" w2 s" m! M( I2 [3 ^9 N) ?, J* j3 O% {' l' A
static int __init led_platform_init(void)
2 e! _# A: y8 l{  T& Z# Y/ z' s" ]3 _
        int ret;
" z2 U' D. Z6 C8 X#if 0& M% ~$ j( k" G  S1 A8 e7 p) X2 g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 E# i1 ~6 e4 d' j        if (ret)8 A2 v! Q, E5 S7 C6 _$ y" J
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( D+ A0 z# x* i; f( T
                                "%d\n", ret);
! d. ]" r6 ~, l  e+ ^, p#endif* W1 p. w/ _. c7 @: t
        ret = platform_device_register(&da850_evm_tl_leds_device);8 Y- `! W: X8 @9 _1 [! N5 ~4 R" h
        if (ret)
: J( x$ G. k6 d                pr_warning("Could not register som GPIO expander LEDS");* Z+ Z7 L+ O' f+ m" ?$ \9 ^
        else
6 r. ^0 ]! Y  X* C3 K* e/ B  [                printk(KERN_INFO "LED register sucessful!\n");# Z4 I6 h) b7 x5 P, _  V7 L8 F
, J5 f' h$ @9 a! D
        return ret;
/ ]$ C8 ]# }/ G) E0 u: |8 ~}
9 D* n3 @! M' H9 P- W
8 q; [4 {- f, ]) V; Wstatic void __exit led_platform_exit(void)
+ g9 p$ n7 _3 P1 ^: L{6 _, J+ X9 O# H$ m5 t" Q" Y
        platform_device_unregister(&da850_evm_tl_leds_device);! I" {' r- V; x# u# f9 l1 S
6 W0 S  {. j0 ?2 z9 a# o
        printk(KERN_INFO "LED unregister!\n");
9 e, ^/ [7 {5 t; s, z3 Q( V# g}
% Z2 _# l. [+ c! c2 Z0 v8 F3 Y
3 P: Q- M- a" W2 `- R+ h. U/ qmodule_init(led_platform_init);
- K! p. r. U7 N* smodule_exit(led_platform_exit);
! s# y7 [: [3 }0 }
9 I# w, e( R- J, b$ sMODULE_DESCRIPTION("Led platform driver");
6 D/ g; p8 ?+ aMODULE_AUTHOR("Tronlong");  |" z+ L' l9 E7 y
MODULE_LICENSE("GPL");" g4 Y' O# d3 Z5 {9 S7 w$ S
. Q/ a9 e/ [( G4 A' ]) x- T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-2 09:24 , Processed in 0.047893 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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