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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 w- c6 Z/ w0 I- N6 ?$ }#include <linux/init.h>
  ^* ?+ w1 c1 T#include <linux/module.h>% o1 e; Z# H$ |- u  d, c
#include <linux/kernel.h>
  L* ~8 J$ r$ _1 c8 h/ T#include <linux/types.h># W0 @/ Y7 ^( @' i  {: R
#include <linux/gpio.h>5 X$ k- I3 @/ a. x2 y
#include <linux/leds.h>
: k  _5 J/ x( _9 p#include <linux/platform_device.h>6 M* G# X+ l: m3 T8 Q

" P2 B. L6 E% A#include <asm/mach-types.h>
7 s) g9 v& n; b$ \- Q( a! c#include <asm/mach/arch.h>
% I- E0 a  L+ N$ l8 ~' u, y3 Q#include <mach/da8xx.h>2 ]. @9 P& o5 A3 }( \$ i
#include <mach/mux.h>3 B5 u& f) ]0 ]# a1 r) M

8 n' J* I$ Q  h9 @; M#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 L3 ]  S& t: X5 W
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ s0 n' D) L" h4 J
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 F7 N( h! k+ F! j" @* u& U
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 r, y  W: j# }4 F
6 S0 X4 f0 }# A/* assign the tl som board LED-GPIOs*/5 l* P  ^+ c3 K/ B4 U* T1 T
static const short da850_evm_tl_user_led_pins[] = {7 |3 `, \: B  \
        /* These pins are definition at <mach/mux.h> file *// q3 a) B3 H2 }5 |$ M8 m9 X% H: ?
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," Q3 y2 ~! W' R- D
        -1
: v' f4 r; n2 C2 W0 T};# ~  m, D" O; y9 y

+ C8 s: Y8 H% `0 p& k$ T, ^static struct gpio_led da850_evm_tl_leds[] = {
: q1 T7 U) m  N3 F. v7 G        {
$ U6 L$ R2 b, h+ k) y) h: e) W                .active_low = 0,
; U9 V2 _8 Z2 g4 X( U  a0 [9 j                .gpio = DA850_USER_LED0,, R. G( u- F! ]4 R, c1 Q
                .name = "user_led0",
- L9 o6 j5 K) v                .default_trigger = "default-on",6 [1 j  ?! W% z/ u
        }," t1 C9 n* m9 J9 [1 |
        {
, X* Y6 f* t, ?7 l& t                .active_low = 0,
1 g: Y+ E% f: H) ^6 \, m                .gpio = DA850_USER_LED1,
5 [' R! M2 k0 _6 f1 ~1 _% S                .name = "user_led1",
  k6 t1 C, p' T8 Y                .default_trigger = "default-on",6 L. J$ x; d$ `% L- x. o9 U+ S
        },
7 e" h7 V) g  }0 r) g        {
& y* z0 c* @5 ?6 Q1 z                .active_low = 0,
9 ?0 o( P. c$ w  W                .gpio = DA850_USER_LED2,
5 `% l' `/ T5 R8 p                .name = "user_led2",
. a! B+ Y8 ]4 r4 l* v- u$ C+ @4 f5 z                .default_trigger = "default-on",
3 Z/ N  B1 L& A+ _8 l/ {        },) n9 K9 y3 J/ Z: C- J3 J% Z8 ^
        {, R8 W: k) `" j/ {. d
                .active_low = 0,$ T* Z7 B% ^7 w6 r: l
                .gpio = DA850_USER_LED3,
% ]2 j% `, Z) ~8 p+ E; m$ w                .name = "user_led3",: |0 u( n( w' R9 N" r
                .default_trigger = "default-on",: o/ f9 F0 T& x; N
        },
$ I. F3 L$ l2 G& ]  |};8 _' v/ H. j2 u& ]' Y. Y
% n: d" d' C$ |. z' |' I
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) _1 W* }1 I9 a        .leds = da850_evm_tl_leds,( x4 x2 d; H' O7 F2 ?" s4 B- V/ L
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 ]- c% ^' J! T};
! d/ H: j1 z1 y( M
4 h! ^# L6 K$ sstatic void led_dev_release(struct device *dev)
* ?; [2 q$ ~4 U4 b1 A  q{1 _5 X* f" a2 n! ^! r1 }
};, D3 T9 Z  U7 w9 P0 F0 c
$ p9 B, q6 D6 t, X; x5 [
static struct platform_device da850_evm_tl_leds_device = {
7 {5 Z; Q; b+ W6 P  |* |        .name                = "leds-gpio",: q$ X! }! n* Z3 ^3 j: A
        .id                = 1,
! M$ p: j' P) Q3 X3 v9 O        .dev = {
- K4 [; n2 y! p3 O                .platform_data = &da850_evm_tl_leds_pdata,& M5 P. F* Y. x/ v$ S4 ?
                .release = led_dev_release,
7 _* A& z" U6 c' C+ }$ E( r        }" B; K9 `7 N7 e0 y3 b; l' v
};  w. Y. C* y7 J) V

; j; u$ ?) P1 }7 ^! o* Y2 dstatic int __init led_platform_init(void). g4 r* c8 K) Y3 U$ `
{* n, \+ O' v6 Z
        int ret;
$ O% @2 N: @* o- W#if 0
$ U& H% I- l3 K5 D        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* P1 A( I  ?* z
        if (ret)" n9 |. ]6 V: ~1 X. g% m; E  ^9 k
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: J7 F9 ]" z& M) f7 Y7 h                                "%d\n", ret);  a0 X  m( p2 ]. v1 |, t
#endif
0 t: [/ M5 d2 N  w1 s, A3 c6 i        ret = platform_device_register(&da850_evm_tl_leds_device);
( J5 ?* L" b% P# n% J        if (ret)
8 ?* O1 X& S& Q6 L. ]) c                pr_warning("Could not register som GPIO expander LEDS");
$ u9 a9 V. `% l' G        else
; N# v- I% G4 |9 B; u                printk(KERN_INFO "LED register sucessful!\n");
) G" r1 q, C, N/ k/ r* U, D+ e! t% t# M! j
        return ret;
  @8 P6 e1 C& h; R}3 q+ Z4 |: ], n, u, E6 x
: ^) X+ s7 o* K& I, I
static void __exit led_platform_exit(void)7 d1 Y' `9 O8 d+ Q" |# n9 ^
{& k6 n0 x8 L9 ~' @  @/ E) u
        platform_device_unregister(&da850_evm_tl_leds_device);
- z0 {5 A' d# G6 s
- S5 Z, B# r9 B% V        printk(KERN_INFO "LED unregister!\n");
) J/ j  S& R. L. p}
6 Y( x" V( M- S) c/ E0 k- `. {3 ^6 O+ b  f
$ l7 N6 ?0 ^. y; B' l9 i4 Amodule_init(led_platform_init);
6 P* O, _. h; C# [module_exit(led_platform_exit);$ J+ ?6 J- i7 @

8 J9 U" m6 \3 b- UMODULE_DESCRIPTION("Led platform driver");1 R5 [) F  I" j* D/ ^/ ?+ d( t  V
MODULE_AUTHOR("Tronlong");1 b7 N) R  [7 V, \7 s
MODULE_LICENSE("GPL");
5 R5 B: G  f+ ]3 d* a% B
8 F* R$ `: o2 p2 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-5 01:22 , Processed in 0.040489 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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