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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  I; _8 g4 r( a#include <linux/init.h>" y, W* n9 Q* b- W/ Y* b: k& d
#include <linux/module.h>! v  q1 l, H) }
#include <linux/kernel.h>
7 z9 a9 W: T7 e" h#include <linux/types.h>) g) a" M# W0 ?  f5 `- w$ N" T
#include <linux/gpio.h>
: O. y. P0 y5 N' w: T6 |#include <linux/leds.h>$ c5 ~8 H+ T$ V
#include <linux/platform_device.h>
! n7 x+ n' ^. |8 s8 _( _" q- z' b% H* q, r# o6 ?" i
#include <asm/mach-types.h>8 ?5 G  A  E/ R
#include <asm/mach/arch.h>& j# Z6 k6 j) U6 n- R
#include <mach/da8xx.h>
7 K, n6 P0 f0 L$ a- M" T, @#include <mach/mux.h>
/ F* t# O7 u6 D( M
& E% K/ g$ [; n7 S3 b#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" Q2 Z% X# v! K#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 a* \; P% L/ T# C) n. C, _* u#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# }7 R6 i" ~) T#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: Z5 x8 F8 g3 t* }7 b9 Y1 T! u/ w% d, v8 R/ I
/* assign the tl som board LED-GPIOs*/% L- W. Y7 q- O! m. y* V- e
static const short da850_evm_tl_user_led_pins[] = {
# Q( B, [4 c# m8 ~- h, D6 t1 v        /* These pins are definition at <mach/mux.h> file */
- e; L; i* ]4 M( j        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' k8 k; z# T4 h. P- b        -1
% E. R6 z' W% t, ]7 T};
3 F, U, o. ~: q7 Z, \+ v2 ~- f- i% H% u& b6 C, f9 H6 m
static struct gpio_led da850_evm_tl_leds[] = {
8 I7 c( H- ]" J        {# F/ L6 H- `1 `" A0 K8 c
                .active_low = 0,+ E' x, F$ a1 v& w
                .gpio = DA850_USER_LED0,7 b+ c3 j9 {3 L' ^, z
                .name = "user_led0",
) e" `7 ?$ n2 V; N' d                .default_trigger = "default-on",
% j- y- U0 A/ D/ ?6 ^, U        },( t9 t8 x6 P; r) g7 b! r/ Z; l
        {
5 n4 l2 [6 W; t4 O                .active_low = 0,, |! D* B* X, M) h  ?; u
                .gpio = DA850_USER_LED1,' I* f- J8 t4 {& A" _
                .name = "user_led1",6 o# c% {' s1 _. s
                .default_trigger = "default-on",
, a& I# ?8 J( s8 ~/ _        },
0 b& |) U% m' r/ m        {
1 I1 o9 t- C! T8 N+ l1 l* d. I' F                .active_low = 0,8 |8 ]* {* V! V# s( k
                .gpio = DA850_USER_LED2,
2 a# t$ [' W# @0 V                .name = "user_led2",! ~% U6 \: T, y! }" x. L4 G
                .default_trigger = "default-on",
' r' q* u: k, n) p        },; m. X* W+ P; M: r/ M
        {2 V" o2 ^) Z; P
                .active_low = 0,
! {% i. @; K" o+ |! x( _/ X                .gpio = DA850_USER_LED3,
% d4 g4 K+ W: U2 l" r" s                .name = "user_led3",
2 j2 b" Q1 ?, P7 m                .default_trigger = "default-on",. T4 _; T0 N% s$ ~
        },) I# I5 X0 n5 n1 t
};! k4 O, {4 Q6 A# ]+ }
9 s6 n7 ]  U- }
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: ^" T% A" ^0 k9 Q$ w        .leds = da850_evm_tl_leds,
% b8 ]2 Y4 ]( h        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' a' F: A1 Z* b. v( Y$ z# k% S, A
};
) a% O8 Y$ Q) _& @* K8 M) o
1 H% B7 K( [! }2 w: D/ H! Kstatic void led_dev_release(struct device *dev)
1 c0 `; n- _' T; S{
" y2 p5 t- Y/ E! N( F2 A5 b};
' `6 j: L% |: P; k) t# Z
- D4 ~& ?8 L- Q: p3 Gstatic struct platform_device da850_evm_tl_leds_device = {
! C' l# {; {" {& o$ @2 [        .name                = "leds-gpio",
) ~- `: k, H5 U# q& k        .id                = 1,
6 a, Y) [  }9 J/ R& U& @: ~7 a        .dev = {
9 ~' H$ ?' k" a, l) v% G! W3 ^/ \                .platform_data = &da850_evm_tl_leds_pdata,' H+ E. _" h+ `- Y" c
                .release = led_dev_release,' ?7 H- q; W6 u, P, l# p! @
        }9 B" T% E7 [; ~) Q# H! N2 w0 P7 [
};  }' m. E* E. K8 a6 K1 y7 O
& }3 X3 \3 a* [  W/ q5 D1 M
static int __init led_platform_init(void)
3 K7 S9 H3 F0 n7 s1 |, z! H" p{5 P2 H# g7 B# {9 k- `7 v; d4 ]
        int ret;
- z8 B7 W  A8 z6 n$ D/ ~( n8 @#if 0
4 k: D( I! V' J* z1 c. x8 s( m        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, W- ^) _( K, k5 \" T: P        if (ret). U6 P6 W8 S4 P: ^' i
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 ^, E7 i3 N1 [& j
                                "%d\n", ret);
" m: n2 j: x& {& ^: z5 c% _#endif- F$ P: N% G" c; P# P. n
        ret = platform_device_register(&da850_evm_tl_leds_device);
& n  S$ k9 J, C6 {  v& |$ Q        if (ret)) B8 n7 a) f' E5 c1 x9 R
                pr_warning("Could not register som GPIO expander LEDS");
/ |% g9 H' j: }) ~1 [4 d1 r& T8 L9 F        else, K2 I2 k+ x/ ]3 Y! k$ G& \
                printk(KERN_INFO "LED register sucessful!\n");
$ U2 {4 B5 a1 o& P3 T
8 K, }: W5 k0 q9 y        return ret;
  ]8 S& s+ J* m8 x9 q2 K}5 H0 B( R# h2 H6 W+ A
3 C% ^7 B, A, y( j+ X$ q
static void __exit led_platform_exit(void); H' H* N9 x" w1 s7 G, v, B
{6 J0 r% P" l/ A5 N3 ]& T
        platform_device_unregister(&da850_evm_tl_leds_device);3 g: b8 F5 q8 _  M
( p* _! S, m5 @9 K) S, ^
        printk(KERN_INFO "LED unregister!\n");- n& n8 U  d2 b  T
}
$ [/ ~# L$ T7 F6 G) h1 Y! P
5 P" P7 X9 p# j; {. ?& Hmodule_init(led_platform_init);# G, f" [3 m7 Y* C
module_exit(led_platform_exit);3 k9 I5 Z! y! c% O, _1 X

5 K' C) C% G/ g7 a2 tMODULE_DESCRIPTION("Led platform driver");* Z: T) i  N! F5 m6 r8 }; @# a! k( m
MODULE_AUTHOR("Tronlong");
; I, c3 e2 Q: N- y) c1 s6 QMODULE_LICENSE("GPL");9 U6 }' q" P: b& M$ L( M
; n; }( B* t+ X: Z! J, e" [- P0 E8 h/ U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-8 01:43 , Processed in 0.041079 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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