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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, J# i6 ^" i. A3 }* I5 o: F! Y+ }#include <linux/init.h>
" A2 v4 U  S+ D6 `  w* B2 P#include <linux/module.h>/ X. C% A' B" v, g2 D2 e: w0 S+ ~& u
#include <linux/kernel.h>- O' T; P  e$ E# W) b( J
#include <linux/types.h>
  K# D0 |0 K: R4 i# R2 u#include <linux/gpio.h>( C: Q; y7 V: i7 q( [% [- M
#include <linux/leds.h>, J" j4 s4 p% B( k7 l
#include <linux/platform_device.h>
/ u' V$ ?  {1 w3 P+ L
# o7 L' R1 T3 ]+ @$ m( G$ k# H8 R#include <asm/mach-types.h>1 Q# `1 A7 Y3 S1 h! F
#include <asm/mach/arch.h>/ H0 i9 `; B+ ]% b$ M3 f5 ?
#include <mach/da8xx.h>
$ Z7 W- ]- A. B3 H; d#include <mach/mux.h>
( R. l+ v: x6 l8 a7 L5 u+ s1 c& @& L- T3 M! r$ R+ x
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 s: \3 `; ?- l2 F- B4 J. n( _0 E% h: Z  b#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 x# k# J3 N+ o2 g& [' E- w, ]
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 A' O4 m4 U( b
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" Z& t+ A2 Q, e
; z3 {+ q7 r5 g& {  m6 _4 V4 G/* assign the tl som board LED-GPIOs*/! B) G6 t% _' n. W/ P/ e
static const short da850_evm_tl_user_led_pins[] = {
# K) a$ m5 v! A" q        /* These pins are definition at <mach/mux.h> file */8 `- g5 g2 Q$ Z% @/ B  m' V' {! Z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) W+ v8 g$ W- u        -16 v) D5 ^2 s: f  y9 T
};& I( N, {0 g* ^6 X
" |( B) F8 V/ b+ C6 a5 A
static struct gpio_led da850_evm_tl_leds[] = {* U& v/ U+ N5 a; p) S
        {
. Q  F) K2 A) \2 N1 U" V                .active_low = 0,6 \2 w: |6 U, L( [$ P
                .gpio = DA850_USER_LED0,
2 z. Q% G" G* l2 e9 Y; ]8 q                .name = "user_led0",
7 o# {  E7 z+ n  @                .default_trigger = "default-on",; n5 G# J, ?: y  p& V! v
        },
$ U, A, m, U- t        {
6 O! B3 d8 y. w4 y( h1 U                .active_low = 0,
" ?8 q/ }( h) V% S: f                .gpio = DA850_USER_LED1,6 U# ~0 z3 w' y" X
                .name = "user_led1",& V  E. K. c2 ?6 v( B* O9 c9 Z( ?
                .default_trigger = "default-on",3 o3 v  }: I7 h6 \
        },& v  {8 F" s* O
        {0 k& x! K" w' Y! q  g+ ?. `# u2 l
                .active_low = 0,
5 j; c+ u5 d3 ]/ ?                .gpio = DA850_USER_LED2,
7 P+ s6 c/ p0 v5 P) H                .name = "user_led2",
1 d; L0 e* ?- a. P1 f1 Q- @                .default_trigger = "default-on",. x( @! U& z  y; d
        },
1 I% s. L: @0 S3 @6 T3 c        {
" n( l3 G( h' T- k  F& r$ w                .active_low = 0,
8 S( |! H! {8 F7 \- ?                .gpio = DA850_USER_LED3,
& z& I2 P8 J% W1 X# o! P: ]- q                .name = "user_led3",
2 j0 n: l* e3 X6 D# _4 O9 {- ^                .default_trigger = "default-on",
9 u2 A8 }# K8 d/ P4 \        },6 z0 ~4 x' o8 q9 j$ G# O3 V: H
};& g! r# ^) A3 ]  A2 Q6 ]

! H7 I9 ?8 o4 A6 }( Y8 hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; x3 t/ n3 m2 \$ V" m8 ?: @
        .leds = da850_evm_tl_leds,
# ?: Y0 o( ?& F& y. U- F        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& a* g% \4 Z' ^' w/ }
};' {& Q4 _1 D1 Q: Y! p# E8 a
# `4 P6 L  l3 Q! Q4 T  V# B5 x( Z
static void led_dev_release(struct device *dev)
( Q' r% V1 Q- Z9 G. y4 V{- W- U' \  r; M; I8 r. Q, J. q& Z
};/ Z# H# U3 V) F5 L0 U5 e  Q* d
1 j% {# S( |+ `
static struct platform_device da850_evm_tl_leds_device = {
; H- s3 K# a: j5 `! a' F2 j* p        .name                = "leds-gpio",, R' Z8 S5 m' H; @, {! ^2 z
        .id                = 1,$ X+ K0 C7 X4 s# Z
        .dev = {
1 q' X: |* B2 k& a6 f                .platform_data = &da850_evm_tl_leds_pdata,+ _# f/ {/ H& I% r$ J# m
                .release = led_dev_release,  \6 A3 Y# }6 e$ P, A0 w  x  o
        }3 p+ h; Y# T' m
};
! Z5 v" a# Y) e# u. x' r( f! y" [, G- `8 H2 b
static int __init led_platform_init(void)2 z' N+ F, C$ h, F6 c6 F
{2 ~( [  i* M8 A5 s5 E
        int ret;+ j2 c2 w: `8 x" u0 }+ y
#if 0' \1 Y6 m  K: t; ]" ]2 q6 [
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ ]1 u. s1 e  v) P% v) \        if (ret)& q( o; j0 F; `
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 V) y9 @3 }# Q6 ]( }6 V; W9 j. k                                "%d\n", ret);6 T0 p  _# F( M
#endif$ y: e/ n* t: b* `; n2 R
        ret = platform_device_register(&da850_evm_tl_leds_device);( f2 O; Q( ]1 p) l3 d  P; `
        if (ret)3 O0 R+ w. f/ m% P$ J: A4 X/ g
                pr_warning("Could not register som GPIO expander LEDS");) A8 Y3 e; _# n$ P# p8 |
        else+ u7 u" y; h; W) }' I4 Y
                printk(KERN_INFO "LED register sucessful!\n");" Y# z% }/ y/ ]2 K+ R5 D

3 q  R7 K) e3 K5 G        return ret;8 G! ?9 b; v, Y, j9 B
}5 C* }9 H1 z. f' d9 I* q
; J: D! T" M/ w( H* }
static void __exit led_platform_exit(void)
! I8 T; n7 ~$ N6 ?2 \: h{
3 N5 b% }9 N2 R/ @) C; }. r        platform_device_unregister(&da850_evm_tl_leds_device);
' J2 s2 f' z1 w" v2 w
6 `$ y3 h0 S/ h$ v; s( {        printk(KERN_INFO "LED unregister!\n");
7 s: \5 H3 C0 K8 x1 q}' K# o/ T" O* r
5 G& k  K, u" N( I8 q  q; [: A
module_init(led_platform_init);
7 l% n. D8 j2 G5 d/ ~" g; {module_exit(led_platform_exit);+ N) y9 n; W* K9 k8 g$ h
& U) L! l! ]' {+ O  J, n2 o& ?+ X! d
MODULE_DESCRIPTION("Led platform driver");, r) \$ A- ^/ |
MODULE_AUTHOR("Tronlong");# y, v2 Z9 v9 d2 J# y4 l; O+ ~
MODULE_LICENSE("GPL");9 y& T1 c; E" A- n1 ^+ }

5 L% M5 q( W2 B  J. e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-14 09:47 , Processed in 0.037406 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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