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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' d, Q6 R2 _) V; h#include <linux/init.h>
1 p3 ?. F: E- P3 z' v#include <linux/module.h>
# q8 {& z: a. l5 N#include <linux/kernel.h>. g3 D( s0 J% z' U
#include <linux/types.h>
) U% E4 y/ y+ ~  d/ B* {" t#include <linux/gpio.h>4 p. S' E9 u; }. Y7 o# x8 y) f  E
#include <linux/leds.h>6 n" Q1 m+ J1 \: l( T# Z
#include <linux/platform_device.h>/ N! I& W8 A4 H, r) c3 i1 L

1 }+ H/ D" l/ z3 x/ z# }$ W) }3 V#include <asm/mach-types.h>$ g- g1 \7 k! m$ x1 g+ d5 H/ n) e
#include <asm/mach/arch.h>
, j+ M4 X$ |2 r#include <mach/da8xx.h>
! @" H. G  P# @$ ~#include <mach/mux.h>
3 B( e  x& q% q) i4 z7 F: E  u0 a
+ {; A1 g* I; p#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 U* H7 s6 G* k* |2 s) x$ K# `. ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 M3 _$ U# p9 y- x+ L8 g* F
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" r* m4 `9 _6 |) b3 g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) ^# u  f8 Q3 N7 C
+ k- T- H5 b; f- i5 ]& r1 j; r. T# `/* assign the tl som board LED-GPIOs*/1 ^' ^7 z3 b' W' y. p4 u8 ^
static const short da850_evm_tl_user_led_pins[] = {/ v- d% _1 N5 t& u! Z, D) Q
        /* These pins are definition at <mach/mux.h> file */* Q  q: ~+ _6 g* G. Z  k3 K
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 j$ o+ _! b7 B9 q* ~9 p1 |        -1
3 l6 A! n& h4 Q/ k0 X};
6 A( s: ~& g6 ~3 R% U, F- a: o2 O8 F3 o8 t
static struct gpio_led da850_evm_tl_leds[] = {
) G4 g! [7 @& E. S        {! ^, r" G9 q0 D$ c
                .active_low = 0,0 m+ |" Y1 }8 _; i
                .gpio = DA850_USER_LED0,
& Q: Q+ Z% S/ t2 q7 \                .name = "user_led0",
6 t& C, z9 D6 R9 W$ Q                .default_trigger = "default-on",
  L/ p7 L( I1 G, l        },4 M9 [5 _7 ]8 O6 O8 a) n
        {- s; L4 e& s: \1 Y  q0 S9 R
                .active_low = 0,0 M- R0 Z$ P/ \
                .gpio = DA850_USER_LED1,
  M# \5 k& [) P/ E- I. `2 _7 R                .name = "user_led1",
$ Y  P$ Q2 {* t* g  N                .default_trigger = "default-on",
: O" x! t3 u7 R" O2 a( _: y        },
1 \6 C2 t: q- A1 M: Y1 L$ `% U        {
; d0 K# D$ D: b                .active_low = 0,
7 X5 n# X* ?) d7 s; U3 z3 |" O" U                .gpio = DA850_USER_LED2,# Q7 B0 w9 K/ p8 u, r/ V4 r, f
                .name = "user_led2",6 s4 \. E( l2 n
                .default_trigger = "default-on",
0 D+ F8 `$ a- ^" z( y! M: N. @: ~        },6 N( E0 G- v# G+ z% {' a# \( h
        {
5 h: N! D' s- E4 z                .active_low = 0,
- r% c  t/ L2 U* R                .gpio = DA850_USER_LED3,+ g& j9 b# G* C2 I9 Z3 d8 j/ V
                .name = "user_led3",
% S7 W3 {2 m0 j" S6 B                .default_trigger = "default-on",
4 d- p3 J, L* v- Z: ~: p        },% U# W" F' }6 v0 G
};  V( I% {. g% r/ F) R! h
/ d# n  ?& v/ J0 @7 n
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 T. j5 {5 ^$ j  {6 R+ W( H9 ]* l
        .leds = da850_evm_tl_leds,
! }& P% _4 ]! a, W$ j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- v5 v" G6 R: c* u  R) r# {$ f) L};7 f- q7 |" e  d- H! Q# d
3 b" ^) n2 t# b$ |/ w5 Y; e8 {* F
static void led_dev_release(struct device *dev)
  f" Y, ]( f8 k" a6 f{# M+ H1 N6 }$ V" {8 @. A6 ^
};
8 D0 {: \& D+ Y9 ?* C/ Q
3 o  p2 j) V8 Ystatic struct platform_device da850_evm_tl_leds_device = {6 m7 a# m& t  Q; N+ I/ t+ Y  Q
        .name                = "leds-gpio",
- T+ }: U# e( a8 W* L1 s5 j7 C        .id                = 1,) x3 u( E/ b2 V3 E- p2 n
        .dev = {
6 N9 w' p$ U. M" {6 A% `                .platform_data = &da850_evm_tl_leds_pdata,7 C4 O3 J. Q" E/ n
                .release = led_dev_release,
: n7 K7 z) k3 |) ~3 S$ Q  g. X5 G/ x4 N        }
+ D6 ]9 G% o# ?- d8 \};
" A+ k! z1 c6 D/ s1 ~' e  R, g6 {7 |5 p5 Q& p
static int __init led_platform_init(void)
; t( g! L( y* d; Z9 I{. u$ `; b6 o  g& j7 D1 \
        int ret;
0 |0 M) [8 n8 B$ m#if 07 w. t# ?4 y% f7 D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 t$ x, i5 U7 P' m. y
        if (ret)+ p6 U/ N( `/ R  i& x
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 a& v# Y1 S4 v" p( W4 W: r  Y) ^& _                                "%d\n", ret);  z! G6 U6 e. @* [( m: Q0 g: O
#endif- E9 O3 W+ s9 W* `+ Y$ B% P
        ret = platform_device_register(&da850_evm_tl_leds_device);
) g! d! O" q: i5 k9 y% V        if (ret)
. w7 r$ v4 `) K5 L                pr_warning("Could not register som GPIO expander LEDS");' u0 S/ L; l$ w7 \1 z
        else0 b9 x2 [8 j7 d4 O$ P
                printk(KERN_INFO "LED register sucessful!\n");
7 e3 z$ n. c  J1 U0 C4 e1 }6 e8 i; T4 `7 W: Y9 ?! H0 }& U2 _
        return ret;+ a3 V( \2 j6 H$ [+ q! g, b* {4 h
}
: n, I2 r3 A* o# W
6 p# ~7 E! i8 \3 W% ystatic void __exit led_platform_exit(void)4 |  I; N: C5 o6 y
{3 ^( P! W% V2 |: h( a2 t+ m
        platform_device_unregister(&da850_evm_tl_leds_device);. W- `% \' t' @2 I5 ?, S+ ]1 l2 k4 @
5 i* a2 e9 f4 m2 R" Z; A
        printk(KERN_INFO "LED unregister!\n");9 X" [, _3 s! X, K: I9 b$ g
}
- S) S+ U$ B# C6 ]9 @4 U2 i  r, M" M8 k5 S, l8 W
module_init(led_platform_init);
8 ]+ \; R5 l' P* Smodule_exit(led_platform_exit);
9 j" P' x1 q! A* K- W7 z9 {5 ?0 M- S- C
MODULE_DESCRIPTION("Led platform driver");8 n) u5 m' v1 _( |1 f3 e6 `
MODULE_AUTHOR("Tronlong");8 K" H! f& j2 C0 d3 M# E
MODULE_LICENSE("GPL");: Z0 {. P: W* N# z
( d: {( k/ i1 q6 L# u9 y. B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-26 13:00 , Processed in 0.041350 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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