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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' D: k5 a7 _& t" J* r  @& o#include <linux/init.h>$ g8 g. h: p# B# D: _3 \9 Y
#include <linux/module.h>
/ y2 M) }; r7 D5 n' ?# |* G- S8 c# w#include <linux/kernel.h>
* W% [. x$ z& g$ K( _: O3 L# p#include <linux/types.h>' k. y0 y; ]+ ~" Z$ p2 M( n% R: p
#include <linux/gpio.h>4 K, @, {' Q; r. q: P9 f) v
#include <linux/leds.h>
2 P! n& H6 }. J, U#include <linux/platform_device.h>3 ~6 o* b, s) {- k! O8 h
( T" M! {5 O5 }$ c
#include <asm/mach-types.h># g: `+ k" ^3 ?) F* s
#include <asm/mach/arch.h>* i! F/ C  ^- A; F
#include <mach/da8xx.h>( A, G4 {9 h2 j! |6 A
#include <mach/mux.h>8 v, u0 O0 ?( ?/ k

# t1 }  S' ^" |2 W/ T( [#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( D7 Q6 d" B8 \$ o6 P( H) \#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ {3 @/ E2 b- b#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ j& @8 {3 s6 `6 ?$ H+ Z- a0 i#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' G% ?' v7 i7 e  [- p
: ]1 m3 @6 z) t3 v2 Y7 P/* assign the tl som board LED-GPIOs*/
! K6 N( g: |: }5 z6 W# h3 \3 Hstatic const short da850_evm_tl_user_led_pins[] = {: c2 g: l- ?. d( @( P( I# s/ v
        /* These pins are definition at <mach/mux.h> file */
3 v/ L- M. u: W7 Y1 f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 _, I+ l0 h# ^- w        -1
- \1 G; Y* M& W& V; C$ u};9 _+ u0 u3 }# e, _1 S$ E- T

* F! o9 H- A( k0 {) {& istatic struct gpio_led da850_evm_tl_leds[] = {
; c; v$ |) f* b        {/ B9 Y0 n, E4 P0 @+ _
                .active_low = 0,
' R: X6 a, `6 \                .gpio = DA850_USER_LED0,
% y6 Y0 q6 |" c0 [& V                .name = "user_led0",% `% V) ?& w" I3 z9 R, a) u5 l1 s
                .default_trigger = "default-on",
& g% B; Q6 c# V3 X. h        },
1 O$ W% H& p+ x2 B  n. W, o. W: R        {
1 x4 [- p9 D) F0 f6 u; O4 z" E$ w                .active_low = 0,8 {( b# J* {. K  M' ^& S' `
                .gpio = DA850_USER_LED1,& f; N4 _# L& j7 t
                .name = "user_led1",
8 v% W+ c" J6 Q8 E- M: R& c1 A2 x                .default_trigger = "default-on",
: q' E/ Z4 Z: t, D        },
" E* S# k5 M* v2 X! j7 y2 g& X' w        {
( g% m7 W; u2 p  B0 F                .active_low = 0,
* H8 {4 f8 x% _* N; V. {( H6 o' R                .gpio = DA850_USER_LED2,: u( D' n% k8 J+ r1 A+ [7 q$ ~" N
                .name = "user_led2",8 h: \2 o! q4 }4 n7 F/ q# `
                .default_trigger = "default-on",4 \- h/ ]5 u/ s6 j( o
        },
3 I1 |: S5 t$ W/ S% ~3 L3 h        {
: @! R0 [% s  w- W, y8 K                .active_low = 0,9 z% q% P! N. B
                .gpio = DA850_USER_LED3,
- @1 w: {: _8 b/ _0 }                .name = "user_led3",
7 S. K  a0 K* u: ?2 Z% R                .default_trigger = "default-on",, b9 O+ {8 B+ Y) q0 s
        },2 {! l+ ^# ]/ u! H1 [; `- v  Z
};
) W$ b- D4 H7 s$ X
7 W4 w3 F" r3 d9 Q8 D; estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( Z" E: y. z+ g. Y
        .leds = da850_evm_tl_leds,7 W+ m: }, t+ {& ?& I& g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," _3 x1 r' s/ J6 b
};: ~! P$ L  G/ c2 G+ ~
5 s6 _" p# N0 i% O9 ^1 T: d) R
static void led_dev_release(struct device *dev)6 w& h/ I. `# l! v4 N0 {4 }1 g
{6 ^/ i# g  ?% @" E
};  f+ S4 q! V$ V- G5 z. m' B

( D' p( \- L2 y  I6 _+ z$ Pstatic struct platform_device da850_evm_tl_leds_device = {" _* j$ e+ t. W. W% p0 M
        .name                = "leds-gpio",4 O$ Y! h, F9 F, `
        .id                = 1,! L* u7 U; p8 \, b4 J
        .dev = {
) b  |& U4 l) w2 q$ o" s# Q* c                .platform_data = &da850_evm_tl_leds_pdata,
/ M# o. H' J) u# w, J; Z                .release = led_dev_release,
1 H3 P: l- [! A( C9 ^        }- a" T( A0 D% V0 r
};
" J+ e6 ?# T) x, u( ?; F7 U3 ?" T# c, B# a  |4 {) R# I; h; r6 D
static int __init led_platform_init(void)
, n" N" p4 p" c& g4 f9 f{
0 L3 X  N. e( Z0 z# J        int ret;% p0 N* |: p9 z( g3 y
#if 0" ~- S: [2 x4 h. y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 _, [2 `2 g' L) P( h/ @7 ]3 p& ~
        if (ret)1 Y2 ]7 O( ^6 W. t
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! K6 G) H" j; B9 p1 {! X                                "%d\n", ret);; I0 b( G- H+ M6 C5 s' j
#endif2 H" b9 s) v- k  D
        ret = platform_device_register(&da850_evm_tl_leds_device);3 }4 t( ?. M# ~' h
        if (ret)- t) B2 |8 [# h: i& p
                pr_warning("Could not register som GPIO expander LEDS");
0 i& d  D, n* ?' d0 V! L        else
# l& a, C0 k# Y& {& N                printk(KERN_INFO "LED register sucessful!\n");
/ p  e& \* T% z8 V: C4 S0 b* h1 K
3 c' \7 ?) {6 b4 s" B4 v        return ret;+ G( I. t( Y. i
}
/ _: A$ u5 t2 I2 Z$ |8 E
; h, O: S( N0 h! T3 @static void __exit led_platform_exit(void)8 @( q9 C+ ~% I: A+ t% l
{
# }" v( _4 l% a! k        platform_device_unregister(&da850_evm_tl_leds_device);
- W  I9 H  j7 g5 V
3 `7 @/ K/ n6 N4 \7 G0 |% f" g4 Q        printk(KERN_INFO "LED unregister!\n");
2 `8 d" A0 G6 C" m& C% P}
3 T- y, Q1 O0 J, Z5 c* t- }
* ?* Z* o4 x7 z2 g' mmodule_init(led_platform_init);
: p. g) R2 Z7 [* \% v' a  ymodule_exit(led_platform_exit);
: p% c0 N. j' ~1 O8 B% G9 K3 ?
& W1 g- [. W( X1 m, Y4 SMODULE_DESCRIPTION("Led platform driver");4 @* O+ J7 s( |) i# R6 g; Y  `: ?" C" _4 T
MODULE_AUTHOR("Tronlong");
( f8 h( Q5 O6 r9 Y% K9 A, UMODULE_LICENSE("GPL");% s: B* S+ E( [; E4 U
8 x4 F% V, I5 x# ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-16 13:39 , Processed in 0.051985 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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