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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ ?7 Z! K9 ?* c! b5 b9 X! M
#include <linux/init.h>
; I! G. S0 d. y: E# K/ B#include <linux/module.h>
6 C, O+ [5 N! y0 R5 h#include <linux/kernel.h>
$ F+ ?; _9 u4 ?& r+ ?#include <linux/types.h>! ?0 |% \$ [, O4 m% N- H2 }- E
#include <linux/gpio.h>( x/ J* Z9 F; x) ~1 \" n
#include <linux/leds.h>
2 z! _) c  H) \7 W% G#include <linux/platform_device.h>1 O# i" K& F+ E- ~% }
8 z- k* I. g9 {& |
#include <asm/mach-types.h>$ G! a. ?" F% f4 g
#include <asm/mach/arch.h>  M+ o+ `% Q( }+ B$ n
#include <mach/da8xx.h>
4 [/ D5 P& u; R" R3 [6 A- I: a9 s#include <mach/mux.h>% a, t* G6 n# h6 @) G

# E9 F# X% Q, H/ u3 }- {, h, S4 K#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! E+ U+ R. A% W* k0 z0 p#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) G) B' G' D  H/ }& n: f#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 Z6 J( |) J; v  k: H+ p! Y' @
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* X$ w" ?! }/ g8 X3 }. [! P* P8 [$ J8 W* ^
/* assign the tl som board LED-GPIOs*/9 e6 Y4 [1 }& F( M' P. B' J+ R0 P
static const short da850_evm_tl_user_led_pins[] = {
* \, [2 `& [* W7 [/ N5 f        /* These pins are definition at <mach/mux.h> file */
9 h8 ]7 J" S; H( L        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* y6 c- I( |# W/ [/ N
        -1
# u+ b% N3 L4 Z: C};
0 P; t7 f/ `3 q' H/ t$ G
! b4 i! Z) w/ cstatic struct gpio_led da850_evm_tl_leds[] = {) F1 ^; q+ Z* W2 Z) u
        {
$ {1 b! w2 X, u1 F* |                .active_low = 0,
* r& T, F# O# a- P+ Z                .gpio = DA850_USER_LED0,( ~; |& ]; |7 B! \
                .name = "user_led0",) {: B, ~8 U7 }8 u# Q% h) W
                .default_trigger = "default-on",
; Y$ m+ p1 u: F8 h! b        },* c4 L! A8 w8 W5 M  J+ E6 c
        {
- o8 @; J9 B- A$ a4 v+ I                .active_low = 0,
* c# g& n- O' u# [7 z$ l                .gpio = DA850_USER_LED1,
- o3 l/ W7 Q& ?2 H  \                .name = "user_led1",
$ E# Y9 }4 U! Z/ m* @                .default_trigger = "default-on",) I+ W9 k0 L$ }% e1 g7 D/ }
        },+ a' Y4 s  W( E
        {
$ d( X% B2 @( p6 @                .active_low = 0,2 H2 ]. g  s- C) o* u1 P
                .gpio = DA850_USER_LED2,9 _# M0 T* s2 c! k& Y
                .name = "user_led2",. b2 ]) |$ z/ s1 ?8 J& a
                .default_trigger = "default-on",
) }; ~' ~3 N$ }8 V        },! |; z  }/ R6 M8 K3 H( T2 @" x
        {8 Y+ o1 P/ s8 M( G1 m
                .active_low = 0,
! D! n0 j( O3 q/ T                .gpio = DA850_USER_LED3,6 c7 \+ [2 H9 ]
                .name = "user_led3",- Q+ L6 [: s; Y9 q" A: A
                .default_trigger = "default-on",) K0 {& k" [; y, g( W; b
        },
' K2 p! |8 z! r* C; ^};
) a6 I- B% e; F* ]0 x6 ~- w9 R- v+ v8 [+ e
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 C% A5 g2 a2 Y& Q& S        .leds = da850_evm_tl_leds,
- Z7 r( G; w0 {' K        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- a' V7 S3 l5 k
};
: w! r+ ]/ [! k$ n6 }; }! Z+ T. m& m) e+ V) z, S8 k7 `" n. o
static void led_dev_release(struct device *dev)8 A; G7 Q  D4 W6 Y7 m0 @2 i' p
{
$ |' I$ p: o% n0 H" y; X};+ u9 n' L  G8 l1 u, ^% v7 s

0 [- _# A: ~8 e/ ~8 i: [2 Hstatic struct platform_device da850_evm_tl_leds_device = {
, M6 S* I$ M; u) r0 |4 C        .name                = "leds-gpio",
6 v4 Y) t! g3 k: W        .id                = 1,, u& p  [4 K! p
        .dev = {
% G& t8 D5 V7 A! D! o; D% S2 }: H                .platform_data = &da850_evm_tl_leds_pdata,
7 h2 Y! A) _6 q) [5 \                .release = led_dev_release,% v# F* [( R# [0 l
        }
& g# B2 Y- h/ ]5 r};; \* C8 E7 P% d
+ {( o0 u5 o3 z1 C  r) ]# V
static int __init led_platform_init(void)
$ ?; v# \1 Z3 u( q8 `{* v& M; ~% X) j  ^' \/ E4 y
        int ret;
; O# T0 K% F3 z/ t- I+ m. s#if 0
" d+ a% R, M: J& B; P; R% @6 Q9 a        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* r9 @2 ]- H# U7 S8 I        if (ret): Q" z+ m* x" @; `
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* n8 w6 u+ A* V                                "%d\n", ret);, j$ k1 @8 f1 ?
#endif
- r! Y: k4 c& G7 \        ret = platform_device_register(&da850_evm_tl_leds_device);# {0 M) E$ b( |; x: |
        if (ret)
/ P! q3 ?  Y, c9 h  n% @                pr_warning("Could not register som GPIO expander LEDS");' u' J( {- x4 J( F7 }
        else9 \1 x3 L3 G8 q3 `- R. [4 c$ d
                printk(KERN_INFO "LED register sucessful!\n");
& f0 O; B- ]# z, |* D& p
' g. ?1 X5 ~  y3 V        return ret;
- D  b( ]) J# `% w) @2 h! Z9 }}9 p6 _" I9 n3 {5 H* y5 h
7 q' H- W* i/ v5 A' ^3 k+ ?) p& q
static void __exit led_platform_exit(void)7 [# f' Z* p& s" b% d  w; `
{
2 N; R; H! O$ A# g% }# x* X        platform_device_unregister(&da850_evm_tl_leds_device);
" L( v' y  X2 O2 @# D* G, U" J* I# P: M: z6 m9 z
        printk(KERN_INFO "LED unregister!\n");
8 x. P) |+ ^+ i9 G: K3 p}8 g( L2 h" d. ?$ D+ A1 q+ z* x2 N
8 O2 ^4 S5 M& b, r6 K
module_init(led_platform_init);3 N* D) `; c2 R' M+ S' j! P- X+ L
module_exit(led_platform_exit);' _4 ?5 K" w; D

. ?; H$ P# T3 t: iMODULE_DESCRIPTION("Led platform driver");; w! O, ^; g+ Y6 z
MODULE_AUTHOR("Tronlong");7 p( Z  _+ ~6 z, P* T5 N4 w# Z
MODULE_LICENSE("GPL");
1 ~- K2 P5 C5 D6 N' ?9 e/ G  K" A& X/ U0 z; R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-17 05:25 , Processed in 0.039470 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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