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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; F. a# D& f' H9 R1 i#include <linux/init.h>
! L7 \* f/ K) u) u( o! A#include <linux/module.h>
0 ~" H8 O5 Z3 D4 c, R/ Z/ E- e#include <linux/kernel.h>2 k2 s9 k) r" V" {
#include <linux/types.h>  `9 ?# B, m2 [7 `  v4 R+ {$ s3 R
#include <linux/gpio.h>
; l, z( h! L* U#include <linux/leds.h>( A* b$ h, T' q" Z) T( ^/ U1 j
#include <linux/platform_device.h>5 R) E1 P6 ^! h3 ^' Q
9 r! p! V- @/ l' O
#include <asm/mach-types.h>1 k, }+ W9 P! G+ v
#include <asm/mach/arch.h>
5 v1 R( k3 s0 z) |#include <mach/da8xx.h>
0 N0 |9 g/ w( M3 G4 I#include <mach/mux.h>
* ?; G& g% B' V) m! l. q8 i( h; O: `$ `, `' N
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; Y1 @; g/ p) ]7 ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ C  a1 \6 F' _4 ?
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# @$ }. ^* z5 K4 }+ y- U- P7 k
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ p, _! x+ K3 i. Z" i# P( c0 C
# X  j( ]2 O3 m+ c8 ~& ?
/* assign the tl som board LED-GPIOs*/! k+ n+ r. V: S3 Z$ G! J9 J0 i
static const short da850_evm_tl_user_led_pins[] = {
& }. M. v* I% T- i: p        /* These pins are definition at <mach/mux.h> file */8 `; ]  g- V5 u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
/ t1 B' ^* s  E. O        -1* D( I- q% N  m- e# d- Z
};* I, E* n5 p; M  w! V

* g2 c0 W. o9 y/ Y+ Bstatic struct gpio_led da850_evm_tl_leds[] = {7 H$ |; n0 b. B* l! \
        {
/ l9 \' m. i- p1 T3 s1 B                .active_low = 0,
# T, F: ?- p6 v                .gpio = DA850_USER_LED0,8 l* v/ ]- I; i2 A( ]2 X
                .name = "user_led0",3 F& g4 L$ B+ ~0 i1 t
                .default_trigger = "default-on",  f+ Z8 d% m8 y# f, ~
        },1 X6 h* x3 e& G- M& V
        {
2 Z, o0 v- t+ o& N, p* O: b                .active_low = 0,
, E6 j% \4 b- a( J                .gpio = DA850_USER_LED1,
1 g, O% N8 d% W" G) X                .name = "user_led1",
! n9 \# D- ^, d" l8 G# ^                .default_trigger = "default-on",  a6 @& R6 d: z
        },
5 X  [  m' [8 J( X  r! z; L        {
, \2 i! \( K* S- Q& f                .active_low = 0,
9 j* |  A  o; r: e# l                .gpio = DA850_USER_LED2,2 ?4 u& z. G0 w
                .name = "user_led2",
! a$ [" `8 p: U                .default_trigger = "default-on",1 g& O/ x( K* Q" J" E
        },6 A. `: C4 Z. P, [4 G
        {% A4 @2 B% M/ j( w0 D
                .active_low = 0,4 F6 i0 R* L7 I" ?' Q* v
                .gpio = DA850_USER_LED3,
7 V6 y! D* z. U# y3 M; W                .name = "user_led3",
5 N0 m3 i7 ]! Q  b) ^                .default_trigger = "default-on",4 i6 }5 @* F/ j5 }* S6 v
        },
+ D4 d. A! k/ r};, B* ^  _2 [% u2 C8 K
4 t! n* P# Y0 r- a: O. g
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) \5 M0 u. v$ U4 p. D% [
        .leds = da850_evm_tl_leds,7 q" b# G( W6 z2 N1 c4 I9 Z
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( n$ H$ V: f5 }8 M7 G% v' W# `% Q
};
6 a( p% U! s) j1 \
; f+ h  G4 {0 s2 |static void led_dev_release(struct device *dev)
3 G* U0 J; y4 G! O  ^6 e{
; i% R) t- U. J" P};( p$ c- n9 ]* I4 C2 K9 N

( |" m. u% A+ j- A' o5 Ostatic struct platform_device da850_evm_tl_leds_device = {0 k8 a- t  L) n+ Z8 Z: v
        .name                = "leds-gpio",
' N! s( ?6 V0 y# L9 G        .id                = 1,& w) K  _# ~7 s  {* u
        .dev = {4 x8 @) w  T9 {7 E1 x
                .platform_data = &da850_evm_tl_leds_pdata,
0 t. h% |/ y- q1 ?0 V0 y                .release = led_dev_release,
7 c# v0 T( r/ T9 l' I" J# ^        }' o" b: \" ^0 Z) V
};
  l) ~0 v4 x8 P! ]: o' i$ ~; a! ~  s3 ?8 L, \
static int __init led_platform_init(void)
* J% ~+ ~% j/ x( H$ ?{
  u$ a* s! D1 ^$ U        int ret;+ _$ N+ b$ }: h* ]
#if 0
, Y- a  _+ |' ?. D7 O        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 b4 p# k: Z% S+ v' r( g4 W
        if (ret)
2 l  N; S6 I* ^; F                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 e5 x/ m/ K% y  h3 S6 M+ _5 V                                "%d\n", ret);4 u  H& i$ E( k$ |& h
#endif
4 c  P; w6 Q/ R- h( S) q" e        ret = platform_device_register(&da850_evm_tl_leds_device);/ Z# t. V* y. K1 Z
        if (ret)+ j1 k; ~  Q; p
                pr_warning("Could not register som GPIO expander LEDS");" o* A# r0 t! k+ h1 x, ?
        else. }" @1 C# V  v# z
                printk(KERN_INFO "LED register sucessful!\n");
9 s, u' d8 R+ S, K, P+ D& V- p
  M' l3 q  b* N# Y% i6 w, i' t        return ret;2 T# [9 B4 g# `8 x7 G* Y* Y
}" R9 O' n6 x; W8 o) N( y

& x* k7 `  I( e: g  T! Istatic void __exit led_platform_exit(void)# Z% J/ C& d$ V( `6 g
{6 F4 F0 z2 d8 `
        platform_device_unregister(&da850_evm_tl_leds_device);5 ?$ y- k) F$ \. k) w  x
0 f) J# S7 c# ?4 g8 W5 T4 L
        printk(KERN_INFO "LED unregister!\n");$ Y( E. m- H1 z7 b% `, p5 a0 A
}
5 _# |: u( A2 P  u1 x7 k5 Z) J. u- K% G; r! a2 b
module_init(led_platform_init);. Y5 O* ~1 s/ e4 c7 f2 r) F
module_exit(led_platform_exit);2 O+ S6 Y( s* N* O) W  d

9 F& K* H/ e9 S5 ~, E4 J9 K0 z, C7 SMODULE_DESCRIPTION("Led platform driver");* L3 H# n8 Z% F2 \' [( B
MODULE_AUTHOR("Tronlong");
  Q/ k" Q5 ]* o/ x% NMODULE_LICENSE("GPL");
& ~" t3 F/ g* @; _- }0 n( H1 H) z0 Y$ G  C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 14:19 , Processed in 0.039005 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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