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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 s0 s9 d- k5 t& R. d. B
#include <linux/init.h>
) t' I3 R# I2 P3 ?# G% ~2 B$ z/ w#include <linux/module.h>
# |6 i' e+ k! O& f6 l, l2 r8 D#include <linux/kernel.h>( Z, @" P/ }( _. i# v: @
#include <linux/types.h>
+ T1 m+ y$ q9 W7 y#include <linux/gpio.h>
  o& h$ S- y- _$ ~( B4 w#include <linux/leds.h>
+ k: ]& a7 K6 ~. ~/ i0 |% u#include <linux/platform_device.h>
  D" |( Q( s: x! c7 ~- e. _% S0 {
9 d, a; f3 m3 {( t2 e#include <asm/mach-types.h>+ i/ b( f. a5 ^5 M% `
#include <asm/mach/arch.h>  e( m( `+ s, F: x9 X
#include <mach/da8xx.h>
: o: G8 n5 Z7 {/ i" O9 a, n6 X#include <mach/mux.h>
) l/ c5 L0 P' X' B
, n, K8 H* n  t% I8 ]  ]( H3 s#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- p. ]# i, y0 U( G- B#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 C; @) M# h) P, ^#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% [$ b$ ?. ?$ P  Z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ u; c; A# m# {- m8 w1 h
: A/ Z3 t; ~, B9 X
/* assign the tl som board LED-GPIOs*/; ?+ F4 H; b# j5 }) j
static const short da850_evm_tl_user_led_pins[] = {9 y# {' ~$ h7 t- {
        /* These pins are definition at <mach/mux.h> file */
/ g2 h7 i8 g& ~$ d3 J3 p) v& h5 L( o; v        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* Q$ }0 ~0 g! }4 l
        -1+ b& Z" Q! d& ^$ V$ t
};- D3 u8 Z# Z3 G) D  m. {2 K
+ F- m( x+ B6 }% L
static struct gpio_led da850_evm_tl_leds[] = {
0 e4 J2 v% H1 A9 _4 v5 u5 h        {& i' Y, X- N* _- o+ S
                .active_low = 0,
$ w- C" Z3 x( F9 D                .gpio = DA850_USER_LED0,1 `. `  D1 p1 Z, Q. @+ w
                .name = "user_led0",0 ^9 c2 B, a# x8 m( c
                .default_trigger = "default-on",9 _9 f' g0 G! n6 ]0 Q# _! ^
        },
. u! b& O: [2 Q8 y! c        {
1 p$ b, o2 J% L5 T                .active_low = 0,
% i( D2 p8 @3 ^  l                .gpio = DA850_USER_LED1,3 `+ T) C2 E* r! v: u3 A; Y
                .name = "user_led1"," K! ~- ~  |  I# c6 ~
                .default_trigger = "default-on",
' q7 H2 {% d6 C' _        },. o6 S7 `. F/ Y8 p* T. Z- j, f, q2 P
        {
( Y, G5 b% N, V: t' s: Q                .active_low = 0,: o6 B+ Y1 J8 x6 |
                .gpio = DA850_USER_LED2,) y2 W: W% L8 l' H% W
                .name = "user_led2",) U8 V; z1 K' c3 a
                .default_trigger = "default-on",3 @- V" ?5 J0 W
        },
. }$ o& p( B% @        {
6 v; V0 F6 }5 A( i                .active_low = 0,
, R: v9 A! _9 |                .gpio = DA850_USER_LED3,0 O! T  s* Q1 I( U( E5 V
                .name = "user_led3",: K+ W$ Z% L2 H  u/ d6 C0 C' X
                .default_trigger = "default-on",8 p; ^& p% V5 Q$ |6 j
        },# [/ z7 q$ V! l7 E' K
};
; u% _9 W9 g# `; ^, E
/ j0 {( n; q( p* _4 s  A  zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 X+ T! v: l/ v5 i$ p0 G$ G
        .leds = da850_evm_tl_leds,% N7 y' {3 O6 Q8 G- B% a
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: A* `6 s! C. l- G$ c) q$ R};
7 N9 Z7 l# K  M3 _4 R
% h( J- V" x$ p5 R* o" A+ Rstatic void led_dev_release(struct device *dev)  T4 v/ [; b# @
{
. S( Q9 P5 G( T( b1 e) s& [};: Z' M* z) a' s& \" i8 {9 U1 @

0 L. _, ?* c8 ^static struct platform_device da850_evm_tl_leds_device = {  v' r8 o0 k5 F; r
        .name                = "leds-gpio",
' T9 F2 r/ K- M  D5 @6 \4 M. S        .id                = 1,9 N8 W9 h9 }: ~5 b# z% u/ L  `
        .dev = {2 B- `# p6 U+ |2 a& U
                .platform_data = &da850_evm_tl_leds_pdata,
6 I6 ^  h9 C( b* |. d                .release = led_dev_release," x' R$ Z8 |) M( O" N
        }
! p' r7 r4 R* ~$ A! [' i- p};" U1 ?* F' k/ `% ]( [: P

* u) {) F& t" E) Rstatic int __init led_platform_init(void)
1 r& C" _5 U# O# z$ I6 w; @{+ [4 D/ \/ x) f7 R9 f
        int ret;. v+ Q" X6 w1 m) w
#if 0
) d2 h. Q1 G9 V) I  v        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% Y# `; I. \2 F+ o' N2 N        if (ret)% m; A# Z" d8 G% x8 u
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ o2 I* N" g) F$ S  m" C
                                "%d\n", ret);
! X$ q5 `2 q+ \, V#endif
( c& ?4 U1 p& j' f1 b" K0 k# P        ret = platform_device_register(&da850_evm_tl_leds_device);
4 E7 [5 ^) p5 l  o$ }( I* ^        if (ret)5 W+ D* H) @( _# q2 v; u! F4 d
                pr_warning("Could not register som GPIO expander LEDS");0 s# u3 W, j/ P9 z' U
        else
1 t1 K. d* x+ _8 [; N3 p                printk(KERN_INFO "LED register sucessful!\n");
, x; L9 @6 H9 l. ^0 s! T+ O
$ O" j0 z: ~+ i' d5 g1 z" U8 P/ w        return ret;% x) _: F4 z& H5 \
}0 D6 U: i4 ]9 f  |

0 Y$ P2 V; v, w6 m9 {static void __exit led_platform_exit(void)
+ N/ K1 P( F3 t; ?5 f1 l) O{# Y, T7 O. E3 k( j3 w- K
        platform_device_unregister(&da850_evm_tl_leds_device);9 }& r& a2 i" n3 R. }
1 D  O* Y' s3 I2 [$ k
        printk(KERN_INFO "LED unregister!\n");7 ^" i7 v1 H7 J& l
}
- u6 k2 Y* E3 X" y7 ]2 A0 D0 m! l2 A) `' m% ?( L' e
module_init(led_platform_init);) t2 {  g+ \% E- K3 a
module_exit(led_platform_exit);
! M# r- T6 A# h; x2 W
$ x% H$ o* w) K( r% {$ n* IMODULE_DESCRIPTION("Led platform driver");2 K$ @7 r; S( o3 j
MODULE_AUTHOR("Tronlong");
! C$ U; V9 V, I8 P- d0 LMODULE_LICENSE("GPL");+ @1 m/ ?6 N+ H" h
( a3 u, B, M% k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-11 16:34 , Processed in 0.037702 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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