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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。: l4 C( `& r) F1 D1 E2 V& i
#include <linux/init.h>
/ w. D3 j! Z5 r7 ~# M#include <linux/module.h>8 r1 y5 p0 q2 S9 D9 Q) e: O7 G' l3 p
#include <linux/kernel.h>
4 C# O$ ^' n0 s#include <linux/types.h>+ D* s0 u, I8 `& K5 p5 S& |
#include <linux/gpio.h>
" Y9 _1 G; q' `% X8 o#include <linux/leds.h>& X. P# u1 U3 Z7 b+ n6 e
#include <linux/platform_device.h>) h: F- \( d: [' i# G  }
& ]( P# G- N5 A8 X( U9 W9 q9 R
#include <asm/mach-types.h>+ M; I: N# _5 j; Q, s
#include <asm/mach/arch.h>! K) b( ?8 B$ Z  G) u) z4 \2 t
#include <mach/da8xx.h>
' E& B6 H3 Y! ^! a# K#include <mach/mux.h>
. G+ }: Y  F) K/ u. \1 n
: s$ R; u7 g; V( o#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% K: }1 o+ }' R7 G/ B
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% s6 v8 D; s# t, h#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" j7 f0 g3 V5 a' V7 M* H#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 ~4 R1 {3 D8 j0 X
7 C: L5 ~# c" |) G: l
/* assign the tl som board LED-GPIOs*/
! B# m- x! T. wstatic const short da850_evm_tl_user_led_pins[] = {) I% P' r& ?& ~8 H6 U
        /* These pins are definition at <mach/mux.h> file */
( P' y) o; n9 p, g( N* P        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,0 P( A& x0 b* L( p
        -11 r9 Z3 l" f1 w1 o
};* |$ L* ^. Y5 _9 C3 q
7 ?& G& P4 ^3 ]. w
static struct gpio_led da850_evm_tl_leds[] = {
( B8 H; w; P5 p        {
( |4 L. F6 |+ }/ u' b                .active_low = 0,
( b- f5 x  L8 \  Y* V                .gpio = DA850_USER_LED0,
9 d, W0 c$ b6 G5 i# O$ B6 o                .name = "user_led0",
3 s- y1 o: N  }3 M- o' ?5 H8 X/ `                .default_trigger = "default-on",- ], v' w8 [- a, W
        },! K' j' r% X+ m, P1 n
        {6 x. t2 \$ f, z! h& v
                .active_low = 0,
8 [7 b: {9 m/ D5 j                .gpio = DA850_USER_LED1,
6 @3 P* ]5 b/ c2 G                .name = "user_led1",# S8 L. e/ Q; L( D; r" T
                .default_trigger = "default-on",
5 [8 ^3 y) U! a& }& ]        },$ p( t4 M0 S' s, W- E% c( r& l
        {( Q2 C0 Q$ d, b  T
                .active_low = 0,1 e4 _# |& t( H
                .gpio = DA850_USER_LED2,6 F- w* C& N( L  v8 p$ @6 s
                .name = "user_led2",
- |0 h8 B# I/ i" S2 U! Q                .default_trigger = "default-on",
4 @! d. ~# v) b5 c; l        },
, s* c' M0 _  y) N$ i% A1 {" ^1 `        {$ ~8 B' O! l( Y4 I
                .active_low = 0,
, y& x. D" U4 i! N                .gpio = DA850_USER_LED3,
$ h' ^( [% o1 d' r                .name = "user_led3",( Y" k, ~$ Q  y9 O/ Z
                .default_trigger = "default-on",- f/ M- K# l- a3 G4 D& `
        },
/ ^2 N) i/ f9 G: b+ ^};+ R5 Z! H! k1 r4 ?- n0 E

) u$ k! x- a  O& Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  ~3 N2 ?9 I0 Y$ J0 X# g        .leds = da850_evm_tl_leds,/ p+ o. H) V3 ~: \5 @/ o% L6 Q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 {- `" n& @, @
};
- T" w& Y9 s3 q0 ~3 V4 O8 X
0 R$ f6 ~$ o7 _, P2 Nstatic void led_dev_release(struct device *dev)
# t6 [$ `+ I  f5 `{
" ~" K$ q% {; S};
& s0 Q$ ?  a: w) I. K: D  |0 l
, f2 Y' \- C; u& _! s- Zstatic struct platform_device da850_evm_tl_leds_device = {
* ]9 {% \/ N) y# ^5 Z' \- v        .name                = "leds-gpio",: t9 b' ]" e( U! N) [, D
        .id                = 1,- o  j5 e" n' U8 k9 i8 @. L( C) K
        .dev = {
. M1 ^7 A: _3 k                .platform_data = &da850_evm_tl_leds_pdata,
( ?( ^! u* o( I; R                .release = led_dev_release,8 T7 `4 t& l* N7 u2 m# o( J6 w  r
        }# R6 k/ j5 o7 B) z. H* f
};! K% q* |* a. u# s6 D

* v! A' q" Z! d* Kstatic int __init led_platform_init(void)
) ?3 c+ T1 E0 |/ {{
! A: i+ C" q/ ?! i& m+ Q7 {- h! j        int ret;
7 f, I3 Q9 H2 b# Y) n9 p#if 0
, T. a- l( o' f& ~8 c6 W        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 @4 a/ y; j2 a% A
        if (ret)
% U6 `' r+ B" R5 W, W4 E                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 _8 h8 f6 `+ q0 k                                "%d\n", ret);
# H4 n' o% k& G5 i0 }  X. w#endif0 a1 e+ L8 k; W
        ret = platform_device_register(&da850_evm_tl_leds_device);$ a1 j- l" P+ U8 r
        if (ret)
) W, I) x/ |4 d3 f8 s* Q                pr_warning("Could not register som GPIO expander LEDS");0 r+ c7 e0 g# z5 o$ U" o( o
        else! y5 F5 o1 V9 x
                printk(KERN_INFO "LED register sucessful!\n");1 R1 @# I# o% ?3 t4 x! m
3 u0 z' n. ^& v0 ^- A' G
        return ret;& v6 P4 J$ K5 Z) V& f
}* X1 v3 n6 M  I$ s$ b2 B
! x* h7 e4 r4 n9 \, g4 J: Z
static void __exit led_platform_exit(void)
" Z$ J1 R! F0 v3 ~{
. |1 F1 [0 e) b- i5 f        platform_device_unregister(&da850_evm_tl_leds_device);. P; t9 K/ l( c, D7 p$ C
8 k5 p+ l* e& o4 e7 d% k
        printk(KERN_INFO "LED unregister!\n");9 D# m( \* \) c8 M5 r
}
6 W( q/ w; f# q! p( V( C  Z, O5 [4 t2 w1 U; Q' {) M
module_init(led_platform_init);
9 g8 F0 t' m9 |module_exit(led_platform_exit);
! s; k. S' z4 z7 }( ?& O0 j7 w: g7 R% b# v- }5 _
MODULE_DESCRIPTION("Led platform driver");6 k2 L) P3 \0 p! b( v. F) }
MODULE_AUTHOR("Tronlong");
% a2 Z2 |0 [2 M2 p& c5 X+ V! cMODULE_LICENSE("GPL");
; Y& {$ F* T. B4 i& r9 m; ~7 d3 d. G& i7 o6 f! `% T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-4 09:02 , Processed in 0.049048 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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