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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 m! m2 h, v4 z, a! `& N#include <linux/init.h>  b7 F: J8 a. X8 `4 v
#include <linux/module.h>
" t$ w! H. r6 Z#include <linux/kernel.h>' R' j- ?7 k/ L8 B1 e* G
#include <linux/types.h>
" R. B, [% B6 y* j#include <linux/gpio.h>
- N) \4 ~. {/ ]  Z3 @( k#include <linux/leds.h>
/ c. {" Q- H" S6 d3 U$ K- O#include <linux/platform_device.h>
+ j% O7 ?7 k8 E/ q) g8 G3 T, }
( F6 J$ M2 |( ~/ w9 A& N( ^#include <asm/mach-types.h>3 ~$ y9 P& I) Z" ?" a
#include <asm/mach/arch.h>
8 d( C% W5 d( j8 n" L4 m! Y1 w#include <mach/da8xx.h>
) s" G$ {% g: I! @7 c. V5 x! |9 m( E#include <mach/mux.h>
9 h4 b6 t& B! a( M
& U2 g. i& g; T; b& j/ M% J, G- r* w#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 B# o1 O# S9 X
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 e) e& N5 X/ Z5 @" W: V: u- B" H4 J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ c0 k( [4 b- j  q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)' ?7 _; Z! j# h: n6 ?+ K

6 G. M, ~$ b+ x9 A( Y! v2 k/* assign the tl som board LED-GPIOs*/
1 d+ V: W* c4 \5 Ustatic const short da850_evm_tl_user_led_pins[] = {
2 u+ t. v. |; j" f8 W( `1 i% h5 j5 a        /* These pins are definition at <mach/mux.h> file */2 @# A3 L7 \  ~3 j8 P  p9 p
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* a! n* s5 [: M; Q3 G        -1
. k0 \9 s* @( P. ]" O7 q};1 G' I% _. c( p) a3 s

  ~; U9 Z4 i$ O& ?+ Istatic struct gpio_led da850_evm_tl_leds[] = {7 u4 W  D, _( a! \$ p* u
        {* n% ?  X1 A3 E4 z9 ~. d8 y
                .active_low = 0,
/ |5 Q$ Z$ u7 L! p7 k6 W/ n, v                .gpio = DA850_USER_LED0,3 ~; F9 ^% O* u! V
                .name = "user_led0"," @& b" t& ?3 d$ d; V  {5 h
                .default_trigger = "default-on",
% l: C9 s! N' F& {0 B' r9 Z        },$ d2 A5 n2 x6 F- c2 N; c
        {' c5 h' c$ _8 V$ q' i9 o" V
                .active_low = 0,
; N% p. X1 G$ L' U+ d1 `0 p                .gpio = DA850_USER_LED1,
4 @$ o$ M4 v( _4 T                .name = "user_led1",- W  j# h, c& l
                .default_trigger = "default-on",
* v8 S! j) j* k        },
$ u' Y) }! A. s5 P% V+ U/ ?' e" p        {
2 t" n0 t) P. P' J/ K& e                .active_low = 0,' R/ }" C% i  r, v* Q
                .gpio = DA850_USER_LED2,- n0 N" C  @$ X; s4 L
                .name = "user_led2",' y5 F4 k) q' J+ D/ d5 c. P
                .default_trigger = "default-on",2 C/ d: H2 P5 F! g
        },! D& m1 K6 t' ^- j6 D+ F, R
        {6 S3 [; P3 t9 a: Y  B! c
                .active_low = 0,! {7 b- y3 k4 [) h, w: r
                .gpio = DA850_USER_LED3,
4 q6 T. D) v& v. k                .name = "user_led3",
( y8 e& O; Y$ J. t1 J5 _                .default_trigger = "default-on",% p, e9 D& a' t0 k# T  B: x
        },! M' S  b/ Z# k; \
};
6 ^, H( r5 f8 F5 z" [& N: b; @6 J
+ D' N  g: O( xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 R+ B3 r4 r& r/ _$ c# v+ N        .leds = da850_evm_tl_leds,
( {  m  D) K/ T% s        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," K* H$ E5 d$ ?, u% A
};/ c  u' d& N1 ^' p' t
) A/ d0 R! _, _- g8 e2 ?1 _8 \
static void led_dev_release(struct device *dev)
6 M, ?9 i- x3 Q( f{
' c4 W( l! _5 _9 }* c' {};+ `( `2 Z/ c4 n8 `# }
4 N7 K/ U2 i$ v& y" Y! w
static struct platform_device da850_evm_tl_leds_device = {
) ~& h) D& ~1 ~5 A# B5 }* v& E5 S4 j' @        .name                = "leds-gpio",: [1 y6 @" h: d# T* p; k0 g
        .id                = 1,, r& E5 H1 m% }3 J+ {/ A
        .dev = {
; R2 y# _% H1 `( e6 N3 H                .platform_data = &da850_evm_tl_leds_pdata,
5 A# L0 o) g# U" _9 _1 o6 N2 }                .release = led_dev_release,
4 d& l3 V; c& l        }9 g; Y$ P5 a7 v" w
};
: i4 v" N% C# L: M3 t5 u% q' `6 b  h. p. W
static int __init led_platform_init(void)
& V6 _8 Q% Q& k0 f2 [3 X  Z{
( F, m# X: c7 z        int ret;
, W# `% L2 ?3 G( F" N& t/ Z2 s#if 0
- E  ~0 I. g( J& {  A4 K2 R% y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: @+ B/ }0 g: b  W' Y; f" F% L2 K        if (ret)4 o. I' w* h6 f1 }, K' e2 L3 @' g
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
  J$ B8 Q( D+ {  `3 v                                "%d\n", ret);( n1 t! Z& j/ [, `
#endif
+ F- o5 \, `4 M5 y5 L* R. H        ret = platform_device_register(&da850_evm_tl_leds_device);
- R4 r* z* ?1 r) S" y' H        if (ret)" d# Q2 M( Q0 t: Z6 j8 S
                pr_warning("Could not register som GPIO expander LEDS");0 r  T- K% ?1 m( z# [
        else0 x5 k. ?& _. t" b3 Q8 C6 n8 ?
                printk(KERN_INFO "LED register sucessful!\n");
' z6 j, d8 f2 ]1 x* e9 ^$ }5 G9 I7 Y- |3 Z2 }* E5 p
        return ret;
# T4 {9 y3 P/ ~0 ?$ ]}/ I# J+ M1 _4 J8 |% r; G7 k, J
1 f  U* L* ^% [$ I4 o. e4 h
static void __exit led_platform_exit(void)
8 W7 K* `4 I5 [# @{
: K* H( D) u/ }# v        platform_device_unregister(&da850_evm_tl_leds_device);: u! I2 M  _( G! w5 Y

0 y* u. `. k2 g! J& N        printk(KERN_INFO "LED unregister!\n");
# @6 U- T/ o* f/ \! y. t' O}
/ R9 W& n6 v/ @; c8 g9 X+ }
# ?9 P. R3 J3 y9 kmodule_init(led_platform_init);+ T5 W  ]0 K& o
module_exit(led_platform_exit);
6 \7 [8 N! E8 a5 M# X
+ f0 R. Y7 q9 B; k; g7 c# R$ m4 KMODULE_DESCRIPTION("Led platform driver");, p7 s: t' B) y7 q" U9 m3 C
MODULE_AUTHOR("Tronlong");6 q, E$ `! F% _8 N& t5 t, t9 |
MODULE_LICENSE("GPL");
" w' B! U/ W+ j, |" {
( |* ^9 z4 B( f2 H' F, d- I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 16:19 , Processed in 0.036284 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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