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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ H2 [* }3 i6 e/ n7 Z% [#include <linux/init.h>
8 ?* z: v# H1 H6 o#include <linux/module.h>! m- y- a% w( t. z3 S- E
#include <linux/kernel.h>
* Z; }' L. e4 H) d, d#include <linux/types.h>
% m; Y* o! T" y4 @) u#include <linux/gpio.h>' ~1 u& t9 O9 l* _
#include <linux/leds.h>
; t$ \, H* F- Q#include <linux/platform_device.h>) z' O2 K1 j$ r3 z' g, A- Z

! ]* s* a7 y9 }2 X$ Y# e4 O#include <asm/mach-types.h>8 S# Q% e* ?6 X7 v1 `& {
#include <asm/mach/arch.h>/ C' b" C5 y3 `# a9 I5 b+ e6 q) K
#include <mach/da8xx.h>5 v0 I6 e5 Q& r2 @
#include <mach/mux.h>4 r* l* m% R+ d( c( @$ T* L, f

4 Y3 R  G( q$ i% U. U' F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 e/ a- E( n- w$ v# s#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! H3 K# Z4 \( n  l# Q; b
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)5 A5 r" x8 u0 t2 X2 p- ^6 \4 w
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 g$ Q6 P9 V: ~+ D) I

5 k# _# t  K' T8 b& j: m/* assign the tl som board LED-GPIOs*/& i, V2 x  D+ H% Y( ]
static const short da850_evm_tl_user_led_pins[] = {
$ |5 F$ c, H, T: [; e; t, t7 X        /* These pins are definition at <mach/mux.h> file */! B( s- Q1 L4 _5 l5 P
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,# Q- c! S( r( J$ i( K" |( q1 L
        -1) ^) E9 O9 R3 P. g9 R9 [
};7 U0 s+ `5 y. F$ n& t

; h& J4 X$ f: x, T* P7 t7 Kstatic struct gpio_led da850_evm_tl_leds[] = {
/ o- o: S1 v- B  K3 w* k0 {0 W$ I# E        {7 V0 T0 E' ?/ K5 ^
                .active_low = 0,1 I8 o& V3 |0 m& S4 u
                .gpio = DA850_USER_LED0,3 P6 K7 r8 @- V
                .name = "user_led0",
# C( M8 P6 G7 \" G8 d6 i. T+ D                .default_trigger = "default-on",' U# h1 Q2 I7 B3 m1 G5 F) u) C
        },
/ i9 @( k" L& S! N        {
9 j+ D. k0 P5 J                .active_low = 0,  |3 ?2 T8 ^+ L* P# M- f
                .gpio = DA850_USER_LED1,$ q- M  h) T( \
                .name = "user_led1",
5 Q" S. z% q) H9 l$ z                .default_trigger = "default-on",) h! A  p" \: B" W& E
        },5 g$ T7 g" {) ~* ?( R0 O
        {
: m7 b9 A, N0 G' ]/ e3 f4 _) M( a                .active_low = 0,- Q4 M: I! U8 q9 H: ?
                .gpio = DA850_USER_LED2,5 D. U9 P' N. P4 A4 @3 i
                .name = "user_led2"," l, y7 \4 O8 M& `4 t! d
                .default_trigger = "default-on",
* y: l5 \2 w" W8 e- ^        },7 C2 N3 c' c2 z+ H3 B
        {
+ H) R. _" F* E# [( d+ L9 ]; z                .active_low = 0,
9 m$ ^1 |; k% T  Y, l1 c5 }9 X$ r                .gpio = DA850_USER_LED3,
8 l( Q: ~0 `5 t* N; U; Y& `/ ?                .name = "user_led3",
- h, g$ `- A. o. j: }4 R, P+ P  E% |                .default_trigger = "default-on",5 K( y5 K4 \2 u1 ^1 l; n# x
        },* L/ a4 ]" J5 @4 ~" k8 ]2 ^
};
2 _! w5 C8 {& u1 w; O# X2 B* T2 N2 Z. x4 Y. P. {, m7 o+ s
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 O% J% `* g' }        .leds = da850_evm_tl_leds,
/ K/ f/ a2 r+ g        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. F/ _% u- {: g# [  Z, b+ j: t- B
};
9 K2 D% y. B. z& ]) Z- P% ]; t1 j5 ?$ h  {: ^
static void led_dev_release(struct device *dev)& \( @% }; `0 j. ~1 D* D
{
' P9 {3 [8 E7 s/ I};) J6 ]" R9 r# e2 R9 R8 H5 O: U7 W# {

' S" O( v7 y7 a6 ?. ustatic struct platform_device da850_evm_tl_leds_device = {
% {, `: ^; P0 x+ l6 |. z9 P# {5 P        .name                = "leds-gpio",0 A& P: V' b% E" S- M
        .id                = 1,
7 y4 n/ @; \) n. q5 C        .dev = {: I; e, x# U) s: J3 }- f
                .platform_data = &da850_evm_tl_leds_pdata," B4 D+ {+ I& O
                .release = led_dev_release,8 a# r+ B  L  m% F' S% Q& p
        }, Z4 r& W, k! E2 q* k# ^% u
};9 H0 P( P& ~7 Z' g: U1 d! f; N7 W

" r% u0 Q& H; C$ q* [static int __init led_platform_init(void)
6 Z5 J. G" N' |3 M/ z7 G{  A$ b; m' U$ G% K0 A
        int ret;
( N1 r  X; Q/ B/ h0 a' P* H#if 06 M, h3 U3 {+ T3 I7 V# x. s
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ D9 `% p; A* Q1 k( z3 u2 L        if (ret)
7 o% I6 U- ^4 f: C2 |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 A2 {1 v7 v4 k: R
                                "%d\n", ret);
5 M/ K  L3 u& N) z& R  T/ _, h, p/ J#endif- d8 O0 A1 m1 `) s
        ret = platform_device_register(&da850_evm_tl_leds_device);0 ]" J, p  j4 p# }
        if (ret)5 c+ {1 n1 N% Q4 t' Y3 R
                pr_warning("Could not register som GPIO expander LEDS");- \1 K. f2 e8 N0 ?
        else2 c: F! L, p9 r5 ^0 u) T
                printk(KERN_INFO "LED register sucessful!\n");6 @7 n) g6 M' l+ W3 z0 W

1 {2 Z7 I  H0 m$ |& W9 o! G        return ret;) p6 e- D7 J! |- Q
}
; y: `' x4 E' L; L- w" M' s9 v) d  j/ o
static void __exit led_platform_exit(void)
' e4 ]0 J9 U( R. h8 e{' Q* ^/ ?) v* K) D, j5 c) n
        platform_device_unregister(&da850_evm_tl_leds_device);0 c  H( L4 Q0 m: t0 n
% a/ a* o- ^: G3 Z: Q- {; F
        printk(KERN_INFO "LED unregister!\n");% q. I' L0 X, i. n3 h) p2 I
}- w/ G) g& `9 d
: J6 `; V" M6 S7 y' Z) i" [
module_init(led_platform_init);/ m2 w. y. \( \7 _' B; W7 J
module_exit(led_platform_exit);
  z$ F4 y0 `& t; i. Z# G# E( B' X" {2 P. z% G7 l. c+ e
MODULE_DESCRIPTION("Led platform driver");, I" K. D! c$ Q6 H
MODULE_AUTHOR("Tronlong");2 X. g  M9 }4 m+ I7 k
MODULE_LICENSE("GPL");1 C3 ~$ K: R- m$ `+ _3 ]" I
1 t! X2 W2 b& Q/ D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-1 16:41 , Processed in 0.041410 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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