程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 ]% D* r* g) D5 T#include <linux/init.h>" A6 S7 D; F+ l; e( \4 C: U7 {
#include <linux/module.h>
8 M, ?9 t7 e8 i#include <linux/kernel.h>
2 e% R% C* G3 m& _* i/ z% R- Z#include <linux/types.h>: w! F$ }$ r7 ~- Y% m# A; Q& f5 i
#include <linux/gpio.h>
* r4 g/ n' Y& X: {: q9 t7 w9 G#include <linux/leds.h>2 P8 X  l9 P! U( u
#include <linux/platform_device.h>8 _. s' D1 B+ r" U1 n7 i

, b0 @/ w6 r2 U" m#include <asm/mach-types.h>
6 U9 V4 }8 O) a4 q#include <asm/mach/arch.h>
  V4 H( Q- s; B% I6 U# P: A4 t#include <mach/da8xx.h>
2 O( @0 ~4 q3 a#include <mach/mux.h>
7 I' Y% y5 ?& ?, z, Q( y8 b2 r  o. V
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" L1 z" _" H+ ]9 v! q; R#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& O  o, x3 V3 r+ a8 ^0 h#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: `3 J9 \- V! t6 ]* Z6 V#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ {1 c( ^8 K) X, o5 v' b7 d& t7 M7 F1 C, k
/* assign the tl som board LED-GPIOs*/
. b2 u( k5 o4 p/ n! nstatic const short da850_evm_tl_user_led_pins[] = {/ _6 R! K* c6 C; a% m2 g4 p4 r
        /* These pins are definition at <mach/mux.h> file */3 V9 z8 A/ a) _5 Q$ _! z+ b
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 D8 k& H6 [7 L+ _
        -18 }5 Y% L) s: E4 z
};, H; i5 z2 E6 P; l0 [

' R! T4 K7 ^2 b2 r" h! kstatic struct gpio_led da850_evm_tl_leds[] = {
/ k; j1 }: I2 G1 c* g        {% W% ]/ g& _8 q0 C6 p' c; T8 v4 y  [
                .active_low = 0,5 }5 _! \. ?; l  ?7 P5 p1 L6 K6 G4 P
                .gpio = DA850_USER_LED0,
& [# [( K' _* f+ }6 w6 S                .name = "user_led0",# {5 C, |) @; B) k: @) V8 a
                .default_trigger = "default-on",* Y* ?1 B4 ?( @+ n8 y8 d; A2 l
        },! N$ x5 G( H0 f) s
        {. Z; ~* z" U. e4 c3 N; A
                .active_low = 0,
, E+ T6 w( X9 v" r' W5 b/ B7 j# d                .gpio = DA850_USER_LED1,
  {5 g# x* ]2 c0 X& J$ @) j                .name = "user_led1",! U; n6 \) D7 b
                .default_trigger = "default-on",
5 N& K5 o; _, w        },8 L; ^0 i: z6 ]2 `. p8 o
        {
( E. X1 _$ ~# ~5 X+ m* }                .active_low = 0,' |# b" L, G5 P; Q7 ^3 W
                .gpio = DA850_USER_LED2,
1 L; @' A, m" l1 b  b                .name = "user_led2",1 \. O, v' N) n
                .default_trigger = "default-on",
* l( s/ D0 j" W  I        },* n, N9 [3 u- k9 @
        {7 k: G$ W! Q( r+ T; q/ k9 ^% C
                .active_low = 0,
' T9 o& p* p3 ?% O4 f                .gpio = DA850_USER_LED3,! c! h; L+ Q7 W; A% o9 o( p
                .name = "user_led3",
) \6 t3 |( ^+ ~1 O" f; d                .default_trigger = "default-on",- ?7 T/ t# G- d+ J' p% U8 n: k
        },
" r, H8 v3 L( K};
; e4 W5 r1 v& }' b1 f3 M% D, U0 u
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: ]/ x* z8 b" f. ^/ q. ]) t5 }
        .leds = da850_evm_tl_leds,$ i' Y( N* f0 H7 i
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- ^3 Q* s, ?' E0 ^  ]
};
6 ?4 O% T% p: ?" E. N$ u
: L8 p0 i6 h0 S& w8 |, l7 u# Lstatic void led_dev_release(struct device *dev)
% q) x; U+ V( {" G{" u5 h5 s+ M! g" E! @* e) D
};9 z2 q; d$ [( ^+ P& A
3 u' D% {" `& b4 O+ K
static struct platform_device da850_evm_tl_leds_device = {% y$ _: {+ `+ M- {' I5 W, P" R1 u* Q
        .name                = "leds-gpio",
5 w# u" Z- [- k        .id                = 1,. Q7 R0 L+ ~1 a  C* A1 H) U' W
        .dev = {, ]: [7 u0 _3 ~( A# n( j7 \
                .platform_data = &da850_evm_tl_leds_pdata,
, p* b$ O, N* x                .release = led_dev_release,
2 u3 P( M* X- o- l9 c& w9 ]        }- Q# k$ v: ^- L' j: s, R
};3 ?, I8 i" z9 M! g8 d# V9 M7 N% Z
; z4 ]/ ^7 E7 M. Y1 G+ y
static int __init led_platform_init(void); Q0 L2 Z8 x. @" x
{: c  ]: l- `2 I& _, j& L* r/ a
        int ret;/ ~2 L0 n5 w) ?5 Q! {
#if 0
; f& G8 }: M/ X        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ w, R0 E1 H3 E( i- b2 u$ u) t4 r
        if (ret)
3 c8 ?- i" w8 T% m8 W& J: }( a; ]& |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: g. x0 S; A5 _  e0 ~8 c& @                                "%d\n", ret);9 |# q7 H' ]# N/ g$ R
#endif7 Q8 }  A9 E- T; w9 N0 x
        ret = platform_device_register(&da850_evm_tl_leds_device);
# }5 d4 R  ~0 P2 F2 X" Z( `- \+ \* N- [        if (ret)* ?$ h" N! h: U1 N) I5 e, [7 ^" K. R
                pr_warning("Could not register som GPIO expander LEDS");
1 X' G- }$ p0 I2 k        else! r- R+ X/ k/ y7 y' F* N4 Q+ g
                printk(KERN_INFO "LED register sucessful!\n");
4 H0 ^4 L" s) T, M7 t9 ^$ m+ w- B4 [& h* g% o
        return ret;
6 g1 ~$ e5 h8 i. @- R% N}
: V8 y" o& r+ \' x: g2 y6 v6 T9 Y8 D/ |
static void __exit led_platform_exit(void)
! [% h, R% ]5 O1 T( E{' C6 u2 }6 H( X4 f
        platform_device_unregister(&da850_evm_tl_leds_device);
5 i( z0 \! Y4 `/ c& j) |# s) E9 S% {. }7 u) ]
        printk(KERN_INFO "LED unregister!\n");
# N( U. `& v# _3 z3 t! ~}! o1 b  @" I5 d) W4 A8 \# t) |
' T  F; I# Q% j$ f
module_init(led_platform_init);
" t4 v* T5 V& Q2 Wmodule_exit(led_platform_exit);
( V% S/ Y8 `0 \, U2 j& t2 q
# [4 ]; C  q+ }/ i/ }, ~) EMODULE_DESCRIPTION("Led platform driver");* M; L; A1 [, _/ ?' H4 m
MODULE_AUTHOR("Tronlong");: G* R" m+ A! S$ g4 u! o! [
MODULE_LICENSE("GPL");
& ~8 v9 A5 f9 A) g1 g' t" l' P1 r6 j( y( w4 o  b4 v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-11 10:04 , Processed in 0.039151 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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