程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& b! U9 I3 Z- T
#include <linux/init.h>
0 C1 u' C: S" k! y#include <linux/module.h>
! S- g1 O' k+ p% N#include <linux/kernel.h>
$ Y( u( A9 l8 g  @5 B% ?) W# w& i/ l1 l#include <linux/types.h>( M- Z( Q$ V! c! z* k% m
#include <linux/gpio.h>
, J! I2 E1 G; a( D8 f#include <linux/leds.h>
; B6 h; |) \0 [$ M8 ]% s: t#include <linux/platform_device.h>6 T' e1 B0 A  ^# @& O3 K" [' |  G
5 A  V/ i. _7 R2 y- @
#include <asm/mach-types.h>+ g0 P+ U% R) T# g( R" `5 f$ j3 l  e
#include <asm/mach/arch.h>1 Q% G, {6 j8 y- _7 B7 p6 A
#include <mach/da8xx.h>4 e/ k9 Z' j: }* \
#include <mach/mux.h>
: k! L( @; \/ r
( g5 D/ n6 [" q) v/ i* z# `#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! ^3 _3 f: x+ J# ?- S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 G7 v; }- A2 b. G+ ~#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! p& D. J( d; V# ?9 W: ~) B, W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( B7 c9 V  Z/ z  Q0 U! q# {
% {9 o$ a/ c( q/* assign the tl som board LED-GPIOs*/
2 y( ]- a5 v3 Cstatic const short da850_evm_tl_user_led_pins[] = {
, M8 }1 O6 q2 Z. J+ P        /* These pins are definition at <mach/mux.h> file */
" W. T# Y5 ~8 M# F        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: r9 L, I3 @1 V* m; V7 h
        -1, Z, k' K; M! @0 ^" @5 }. H
};. E/ O. }6 r' ~, W' \. U( S  D# J  V
* d7 T: k& P4 B2 }5 f) {
static struct gpio_led da850_evm_tl_leds[] = {( V( L: ?" Q: L0 ~
        {/ t  k0 F: d; ~6 @/ v- ~3 J
                .active_low = 0,
0 F* s* u6 d$ z  ]: ~, j                .gpio = DA850_USER_LED0,
6 Q- s& f* l- h' L, h8 h& @% B" `                .name = "user_led0",
* N# V8 s9 _& g( s4 i6 O& a0 \                .default_trigger = "default-on",
: W) X5 j' x* U5 {( X7 v: N        },
7 L, R* y$ q( d; u+ |% o        {
5 u! o) `' r  X: p6 O8 ^                .active_low = 0,3 B# K0 Q0 Z& W& H0 v5 X1 Z
                .gpio = DA850_USER_LED1,
  t) `8 `! N0 {  f1 W                .name = "user_led1",0 O/ g3 C5 H" O' P2 U3 h
                .default_trigger = "default-on",
& @- i7 x4 V3 _3 x        },0 A5 a$ I, M4 E
        {( l/ V; g5 U5 s: b  A5 L9 c
                .active_low = 0,7 o, r: j4 Z7 u8 {2 s
                .gpio = DA850_USER_LED2,7 B& g+ t3 n. R( w
                .name = "user_led2",6 J; ?! w+ e% j* o- _: b7 \' F
                .default_trigger = "default-on",2 P( M/ Y5 ~7 u8 R
        },
, q& f) L, P/ n        {; b) r# c/ E3 ^2 H% k3 U( L9 I
                .active_low = 0,& {) j* T9 [5 w6 r
                .gpio = DA850_USER_LED3,
1 v3 i+ x- Y; s. k                .name = "user_led3",
2 {0 Z2 f$ S( ]                .default_trigger = "default-on",
* j! i( [' T, K( ^2 P  d) V7 \        },* b: a( [7 O: I, A5 H) l0 @
};3 L5 o' z) q/ ?% g$ ?1 A& R; t( ]
! S: ?3 `! h6 l
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ U! A/ G9 |' M1 a7 r        .leds = da850_evm_tl_leds,
6 Z  y# R4 c, M  ]        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 W# O9 m' y- k8 F) b1 P
};
9 t* ?& u. R) a) Q) ]0 _7 [7 w7 Y
static void led_dev_release(struct device *dev)
( ~* t9 O% I0 |$ y/ e{
2 h% F) A; ]/ [+ Q5 }0 \& T};5 r' _8 W! B5 \( ]( Z+ l2 z

. H1 U1 `0 I0 K& ?& }/ K  Pstatic struct platform_device da850_evm_tl_leds_device = {
& Y" S% X; @' M$ y3 O9 @' A+ w% q5 Y        .name                = "leds-gpio",6 N# X$ Q% B, @8 A) A+ I1 q9 [
        .id                = 1,
; e7 d2 p+ q8 B7 u4 G        .dev = {
/ P4 @* Q6 D# a# Q; u0 X+ \& y                .platform_data = &da850_evm_tl_leds_pdata,
7 e! J& k( e) g5 s                .release = led_dev_release,- x/ _( O: o8 }7 f- m$ W* H6 ?- ]
        }: k7 |1 F) A8 Y  R
};  U- a. l/ @: v7 a" m. F  {7 E. M

% r, K* y. o( ]  f  L( D! e& M( Ostatic int __init led_platform_init(void); I1 p. o3 u* ~! x
{
% v) \0 D2 P2 `# b- n/ S) ]2 _5 w7 ^5 I& Y        int ret;
8 r/ F" l2 I, l8 }- H$ p) B3 }#if 0* I+ K" ?3 J: S. ]$ t
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' W/ `" W% u" ~1 k        if (ret)! M5 u! R+ E9 p- v. o" ?1 o
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 b/ B. w1 y: \% b( _% @! k' d7 n$ i                                "%d\n", ret);
4 H) i) i& F( k0 A#endif$ O/ O  P2 l+ W
        ret = platform_device_register(&da850_evm_tl_leds_device);& }3 O6 n/ C4 ~- w; h
        if (ret)
0 z7 N  c4 ~6 h. [+ U0 G$ j4 ?$ o" m                pr_warning("Could not register som GPIO expander LEDS");
+ O3 l& T) {  X( O' w! {& `        else
9 O% w% q: y! @/ b4 B" {3 T# U                printk(KERN_INFO "LED register sucessful!\n");
0 |! s' j' F% ?4 w: `: u# Z, W; y. H1 A9 }2 T
        return ret;
2 P5 N8 k' X  @& w- s% z" b+ d4 ^}- x- T3 z: g, ?' U2 u9 ~: h( j- P

. F5 n* j0 u( |  W& i7 J7 o1 Hstatic void __exit led_platform_exit(void)
' ^" [4 A9 N' ]4 U. }( d  U{2 ~- x9 `# M' m5 }; E
        platform_device_unregister(&da850_evm_tl_leds_device);  r; G" H' E# j5 m

7 Q+ p- L: y& _- m# N! o* ^        printk(KERN_INFO "LED unregister!\n");7 b# w2 a3 s) q" q, m4 L2 f( @
}
1 K" B) I7 T& s; o& m4 V
) [5 L, _* ~! K, l( X8 Omodule_init(led_platform_init);
9 Q  \* E: W4 `. r! F% [2 Zmodule_exit(led_platform_exit);3 L1 [. K. j) {1 O: Y
6 B- Z8 @& D% r7 n/ {5 p' Y
MODULE_DESCRIPTION("Led platform driver");
4 k7 b' p% ^2 w. SMODULE_AUTHOR("Tronlong");$ D* Q" n5 |; ]
MODULE_LICENSE("GPL");) J1 Q. ]+ a1 Y' y8 j

2 w( B2 b& K) u* Q8 O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-16 05:41 , Processed in 0.037040 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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