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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 ^; A! u1 h* `% c- `5 r
#include <linux/init.h>
% K. y  [- W- S* l" U( @" \#include <linux/module.h>
% F) [8 o+ \' i1 f( |#include <linux/kernel.h>% u3 |. h- L7 n
#include <linux/types.h>) a, i3 v* G  s# M
#include <linux/gpio.h>
2 x1 V% _; O" O#include <linux/leds.h>
0 r0 X& u& A7 d4 |4 e#include <linux/platform_device.h>: e& m! E, ~' H) c# y

& e# e: y5 ?$ Q- f- P- J! t% q#include <asm/mach-types.h>8 G# c+ L) O, `
#include <asm/mach/arch.h>
* @+ r6 O2 h5 G2 K#include <mach/da8xx.h>
( N8 a) \; ?! v#include <mach/mux.h>( k% j, k, s( {2 ~5 M
7 a. o0 K) h8 E8 k5 j7 c" r
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: b3 j4 `3 G! \#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 t8 u# H  U3 y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( W% z- u3 O, p" p; t5 g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ v; `5 Y7 k# t* j" V6 ^+ {* J' y  h9 y/ N; e0 z" [! v$ [) g+ b5 s& ^  w
/* assign the tl som board LED-GPIOs*/
7 N6 y' M; _6 ]0 `1 M( ^static const short da850_evm_tl_user_led_pins[] = {
; n- {' N/ x3 d        /* These pins are definition at <mach/mux.h> file */2 H- S# U! ~& I% y1 U6 V
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 \0 i* N8 [6 a" i+ a6 q, w" q. Q1 X        -1
  Y: {) ]6 \' l4 q};' L/ F: [$ ^; P9 e$ j
  d& W) {5 X/ s
static struct gpio_led da850_evm_tl_leds[] = {
4 w8 o+ i- `/ p% A$ P6 @  T        {/ K' C  g# N! D0 R& `3 D' P" l5 p
                .active_low = 0,5 m. _+ b5 V! ~/ _/ L
                .gpio = DA850_USER_LED0,4 f( d" K1 w7 i* b; V3 z1 R. ~" n1 X
                .name = "user_led0"," d- F1 g& f! M  ]( G
                .default_trigger = "default-on",: \- B, T3 E8 W* f/ G. C7 V* X! \
        },7 v$ h. O/ h6 w& V0 i' ?2 E
        {
3 o) m! M3 w5 \6 j9 g' N- X                .active_low = 0,
- }& ?/ ?4 C5 S, Z                .gpio = DA850_USER_LED1,
- }6 C  |3 y- k/ R! h                .name = "user_led1",5 G- `+ @# |9 n8 i! O; M
                .default_trigger = "default-on",
1 `+ `( J& \, Q4 M' a6 @        },& d# X, f; v- V) R$ d2 e" C
        {* v4 D3 c3 @. M. G  W6 A5 N
                .active_low = 0,; _6 b: g. k! p  |/ |2 j
                .gpio = DA850_USER_LED2,# k, J( L9 s! z
                .name = "user_led2",6 J  ^  {  X% P* w/ r( F! g
                .default_trigger = "default-on",
8 W( f9 [' c+ }7 X9 X2 Z" {6 O        },  C# D0 K; d+ c
        {- `" |' b  S7 v; _( s' c! v: r
                .active_low = 0,! c, w) j/ n; A3 o5 c7 w3 U: M
                .gpio = DA850_USER_LED3,
3 v; R" p* p/ v/ ~- ^: j                .name = "user_led3",
! L& n; e8 `; H+ U9 T& W( K8 q                .default_trigger = "default-on",; N$ J! t. \, \8 q7 n: E, n
        },
1 m5 M  Y, G( J6 o, @+ t};0 r; O1 {, I: u  G; g

% ?' P; R+ ^- P! w$ E3 ]4 O5 tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) E9 V, J9 `; B2 q        .leds = da850_evm_tl_leds,1 `8 Z4 s; l. ~- [; ?
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, N) E: [& c; K9 m! p. B};6 m. t; I: w4 j8 O9 B2 ~# p

. |" I2 A/ k& V1 g* e4 Jstatic void led_dev_release(struct device *dev)
) p/ D3 S# p3 N# N/ y% P" _{
. G  Y& {- P& }8 a5 |};2 P6 s5 W- g# @8 @+ ^" V

  n$ ~3 b# D. t& }3 t+ z0 hstatic struct platform_device da850_evm_tl_leds_device = {# _3 X' r+ j+ G4 k: ^* `
        .name                = "leds-gpio",1 I6 o! x* U7 S2 q" ~+ E4 S
        .id                = 1,
* O9 \: R  d' R, K        .dev = {3 ~. C; X) n2 x; W9 A3 d' n
                .platform_data = &da850_evm_tl_leds_pdata," j) \/ }) R: |  \* H% a, J
                .release = led_dev_release,% A3 A; _; [+ u
        }
5 W! i! }0 g% S! [};
. \$ ]$ b5 F: b2 N0 z3 d4 U3 a$ x3 ^" {8 v
static int __init led_platform_init(void)$ N) R9 r+ K$ u/ n9 S4 c' Y1 K
{$ @* j# j' N1 s" q9 Q: V% j
        int ret;0 @$ r5 x9 a5 x* C9 V
#if 0
+ A( _0 Q$ N+ ~% M        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ O) u1 Y6 F8 V* c: y8 Z6 D: ^        if (ret)
1 i" ]  j5 j' i: D7 \                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 L7 O6 R$ R2 S2 `4 f3 S# T9 ^                                "%d\n", ret);
9 g2 K. f. T' P- w  v. q#endif+ N' U3 y8 c; J2 L/ f; x/ ?
        ret = platform_device_register(&da850_evm_tl_leds_device);
/ o3 g0 ^: t( j& r        if (ret)1 |' @4 S' r9 @4 K5 ^4 p& o2 m) c1 B
                pr_warning("Could not register som GPIO expander LEDS");
5 [' T( J9 l% w2 y) v$ y( ], n        else
5 I& ]* [. V/ H) ?- j                printk(KERN_INFO "LED register sucessful!\n");' _; N6 b9 y4 [* k% F0 A

9 R% V5 N& ]: c/ N$ d        return ret;; F: v5 h' g" _1 g" H( p$ e
}5 ~1 P- M4 u. [! S7 p  Q1 {
, b2 S5 i& t3 `( Y: X; t# v/ q  K3 h
static void __exit led_platform_exit(void)) C5 W" a  ~' ?3 d  {
{2 B( J& u0 L+ J2 _3 Y' n# A
        platform_device_unregister(&da850_evm_tl_leds_device);
- W7 E6 G4 H" Q% y7 {, ~0 z+ g( \6 z7 o8 y4 o# i: C
        printk(KERN_INFO "LED unregister!\n");, E: \8 K2 d) k( l* G2 I
}+ M4 l0 L* p" {# C( O
# T/ k5 n: T) d
module_init(led_platform_init);
$ p' c2 }) k; R/ V& Amodule_exit(led_platform_exit);1 c+ z! p% R( _% T6 M

* c0 g. I9 x  g1 X* r8 m7 KMODULE_DESCRIPTION("Led platform driver");
" {# J) K( K9 r! ]- e$ ?% j/ NMODULE_AUTHOR("Tronlong");" r; _# P6 Q5 Q. P/ S: r  G: j( R
MODULE_LICENSE("GPL");
* f1 r. a. W! Z" }4 C, Z: S* [: T6 a4 C: F2 \" M: k7 v# y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-14 00:22 , Processed in 0.040410 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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