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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" s; W5 e/ k8 P7 m. b" ~
#include <linux/init.h>
. V$ k8 M, e6 w9 C! ^$ [% ?/ |#include <linux/module.h>9 a# q) M: ^9 h! \, l. C
#include <linux/kernel.h>/ @! @! o, _6 k* C- g/ S  P3 {. b
#include <linux/types.h>5 ^9 ~: N! ^" q) u, ]
#include <linux/gpio.h>
  T+ o( _: E; O  f/ p+ f#include <linux/leds.h>: G. D+ P  l  @# C* r0 z$ a/ k
#include <linux/platform_device.h>
8 I& r  p" i  m
. @1 s0 n# ~- \; _: p6 k3 x#include <asm/mach-types.h>
4 O0 P# s$ U7 J+ a3 v- K/ m#include <asm/mach/arch.h>
& O. j. i0 \% B#include <mach/da8xx.h>
3 ?+ |% ^: @- s) j  s# X; f" A' W#include <mach/mux.h>
) A% z$ }; A, P$ O
; u. h' ]* c! k6 e3 x; C# ?#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 t* S' d9 w: {  x2 `: ^#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. o: G! I( g6 Q" E9 G' L#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ k' a0 P+ o* l. e' W' R* G+ B
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, b* I& E" P8 _# |
4 B2 i; a5 ?5 A9 \' f* ~# S( h8 O8 Z/* assign the tl som board LED-GPIOs*/' r& a# J$ ^0 @5 w- g
static const short da850_evm_tl_user_led_pins[] = {
7 f, p" ?. g: ^3 j        /* These pins are definition at <mach/mux.h> file */' u# J+ l* U  A
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ e7 A% q- W4 }# d/ m- r/ R- h        -1
1 e1 M7 |9 P/ w+ t$ n};& s, I. A/ }! ]7 }

" B' V" s/ K( i% u5 A+ d& ustatic struct gpio_led da850_evm_tl_leds[] = {
4 u& C0 C! b1 M3 E* _2 W        {6 Z- Y9 p  P4 X, k5 i8 Z  e: v2 S7 [( Y
                .active_low = 0,
9 @( d! `6 ~" p, x                .gpio = DA850_USER_LED0,2 V, |( ]% G& T$ x- M+ x6 F# F4 C
                .name = "user_led0",
, ~% M; ~# H5 @0 h9 Y' k2 w                .default_trigger = "default-on",, l: [, L% d" \2 o+ t4 L
        },7 M6 @6 U8 P) {/ V
        {
$ P) i9 `5 u6 ~  e- @" O                .active_low = 0,% v' R2 D1 C, m4 Z' ^
                .gpio = DA850_USER_LED1,1 W5 m: b8 |& M% O" a* W7 O
                .name = "user_led1",
: A3 E  d4 V, q9 ?2 S                .default_trigger = "default-on",
6 e+ U* U% b# F4 o- _        },- t! X6 S4 j( A7 |! `, O. V
        {& k' Z4 R" P2 T; M7 j5 l% N
                .active_low = 0,
2 o8 R$ k4 D! v! B+ s, R                .gpio = DA850_USER_LED2,
& l' b. t$ ~( W$ _% o1 f- |                .name = "user_led2",
1 C& W$ f6 f0 Z0 |$ O  f, B# i                .default_trigger = "default-on",
$ l6 a% V6 N5 A  k: W: C        },# Y& `8 S# z- U- v
        {
) f7 V. v* A; D3 X' o2 K                .active_low = 0,
) _* b; ]" }* A6 W; ]; s' V                .gpio = DA850_USER_LED3,/ V! }3 S% d! v4 X  Z; M
                .name = "user_led3",; |0 E0 k' J( ^3 D3 [
                .default_trigger = "default-on",
( F, D9 a9 I! h/ o! V3 r( s        },/ R$ `3 ?, T/ r& b) a2 p
};
  s- K. E2 h& Y5 X+ W2 b# r" _3 k; M, o" n
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# M- v$ }4 }- x0 H+ g& u2 j& H
        .leds = da850_evm_tl_leds,
' }3 a+ _2 [0 d% j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  r4 l1 |; W* O- y. r: @( f6 Z};
6 w3 l1 }) `1 {9 |/ q
; r; b# G8 H8 \4 s$ Hstatic void led_dev_release(struct device *dev)( _1 z; L) u) \) S3 Y9 j& ~; d& X
{" b1 `+ w# b+ K
};0 ]9 ]3 T1 r8 I# D' S
7 v. l0 [6 }3 d' X* V3 n
static struct platform_device da850_evm_tl_leds_device = {& D/ O' ]1 ?3 D" z. Y
        .name                = "leds-gpio",
: A5 w# i5 B# k& Z; o! e        .id                = 1,
) e/ i1 a6 B8 d) P0 c        .dev = {& ?2 p9 [1 @9 H& R) V" y
                .platform_data = &da850_evm_tl_leds_pdata,( P1 W) ^2 T: c4 [5 A
                .release = led_dev_release,' j1 \4 G$ z' Z
        }! M, F$ ^$ n* H! x$ p3 o
};
: }7 I# b! f/ p6 U4 a& l& v9 o
* E7 c+ m0 H3 I9 x: N; `" ^static int __init led_platform_init(void)
; t* l- Z8 y1 ^{+ c* P8 s7 P) w- _* h' e
        int ret;
# \8 N/ z; T2 k6 t" N" @# r" i#if 09 k! Z2 b: m# i: f
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& N& M. j( a, c; u        if (ret)
; J8 X9 v3 ~0 b( A4 v2 S& e5 K                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( p: l; u0 L4 `
                                "%d\n", ret);: J2 X8 L! g, d5 q% M# k
#endif
% d7 D. s- _7 g) q. k1 _$ s7 K        ret = platform_device_register(&da850_evm_tl_leds_device);$ E8 ^4 K7 p( {" G3 N7 [% L
        if (ret)
. u( `/ P: C- f  Y; t) K1 C, O) p0 A                pr_warning("Could not register som GPIO expander LEDS");7 c, J+ R$ f* Z+ q
        else
! V% ~! X, S+ {7 B! O+ R                printk(KERN_INFO "LED register sucessful!\n");7 o7 b' d4 l4 d# e7 Q

' P5 C7 ?6 i8 p- p! \& m        return ret;
6 Z7 f9 D5 Q8 \9 N}
1 p6 T+ A) K0 y1 ^2 [& i5 _- S) g3 Y- [( i& Q
static void __exit led_platform_exit(void)
/ x3 X1 m' G  z7 ~& K6 @; i# k- m{
3 P& B) q) {! z: s7 F$ x% F/ q        platform_device_unregister(&da850_evm_tl_leds_device);/ E6 q6 o. }' m, R$ L/ n
0 b& j3 g! O0 b3 q  \" k2 S4 ?: c# s
        printk(KERN_INFO "LED unregister!\n");/ {! L; T; a2 F" a
}
1 c# P5 [8 C0 J2 d( w9 O# v, G' f/ P( a" H! T5 Y4 f9 _
module_init(led_platform_init);4 G; ~9 M9 d" n/ G1 T
module_exit(led_platform_exit);7 O  ^+ \1 }( b8 X3 J& N1 f
9 M( Q4 G1 |" I- K) Q$ v9 {4 F
MODULE_DESCRIPTION("Led platform driver");0 z, I  W+ o- [
MODULE_AUTHOR("Tronlong");" x+ n: N7 F4 k' ~0 f
MODULE_LICENSE("GPL");8 T* U6 h3 E* Z$ K. v' o% _3 l' M& T
3 X" j* O7 C+ w( b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-13 23:21 , Processed in 0.058055 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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