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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; `( o" h9 P" I- ]#include <linux/init.h>; H# U2 s- r: |/ Z6 k
#include <linux/module.h>
: ~1 Z# ^$ e  {9 y#include <linux/kernel.h>$ n# z/ X' ]$ P% t* @- n
#include <linux/types.h>6 l" w! i' i# Z* L) o. s2 ~/ t/ P5 }
#include <linux/gpio.h>$ j, o. x5 c  b$ [+ h3 |3 D
#include <linux/leds.h>) y, {4 W* d" [7 g% H/ ?
#include <linux/platform_device.h>$ m$ n: J' E- L( @9 r6 d/ t

) `2 G" ^0 {3 H# A0 N' Y: q& j. F#include <asm/mach-types.h>
& z# ]0 k0 `. S1 }/ G#include <asm/mach/arch.h>5 s" M5 ^, ^7 T2 d1 F
#include <mach/da8xx.h>
  }/ a4 T, t7 f3 A! Q) A5 f#include <mach/mux.h>
0 a2 p' P& q( v9 G5 i7 h" R
; n, J# I# k$ W#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 h0 ?' H% d7 K. n% N$ q+ V#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ h# J4 |2 o( ]4 I2 h9 R9 [8 M5 h& F#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 m' @% B& i2 J. p' k
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* q  c/ `" n% E* `- G
4 H0 {' n. z0 f$ V4 U( h' l/* assign the tl som board LED-GPIOs*/* B, Q, ]4 i! m) y. S0 z
static const short da850_evm_tl_user_led_pins[] = {5 e+ u) `4 H1 C* U
        /* These pins are definition at <mach/mux.h> file */  M2 Z2 Z3 ?$ G5 G4 B$ T
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 {" U0 h- @( B6 l  E        -17 U1 q. D9 g. q! Z, z
};
% i" l0 |  f. e
: q& g* A4 F  {0 tstatic struct gpio_led da850_evm_tl_leds[] = {$ [: ~3 M# x- H8 M1 J) Z
        {
' _$ U4 H# j+ G: y' H' |9 \                .active_low = 0,
2 X& \  ^3 n! n) j, v8 O; o: \                .gpio = DA850_USER_LED0,; d+ K/ b) r2 Y1 U+ o2 _0 e( W1 f+ u
                .name = "user_led0",
3 I* z& G' R8 `$ n# H                .default_trigger = "default-on",
/ @: F, P! `) z7 Y* f        },/ K: J. H5 ~4 V$ n/ C
        {
* t+ d- c- A! H$ S* y                .active_low = 0,/ }. m4 D  ]$ u- ]9 J* `
                .gpio = DA850_USER_LED1,
0 O  I3 [1 U% D) D* q                .name = "user_led1",
7 Z$ p) @3 y2 Z/ I+ K# X7 [/ C                .default_trigger = "default-on",
  J: O+ n) F+ y6 s  Y* i3 D, f7 O        },/ w3 V$ A( c4 C! L( l* Z, M
        {
2 m2 o0 n" ?4 v                .active_low = 0,
$ L, O! \% C8 Y                .gpio = DA850_USER_LED2,
8 U6 X# e& A0 ]+ N4 ?1 c                .name = "user_led2",
' B' P! \9 q) _                .default_trigger = "default-on",  k/ ~4 s( ^4 r$ c8 X3 Z: ]
        },
! C' z  h& g3 [1 u3 [5 @% p0 L- A        {
3 ~5 u9 ]! H& @' L                .active_low = 0,
, I" [+ X! O3 C. ^                .gpio = DA850_USER_LED3,8 ]- m4 L0 Y1 ?9 F
                .name = "user_led3",
/ B! k: U7 F- k4 c$ @                .default_trigger = "default-on",
( j" {* D% I% s8 M& ]4 B        },7 l' G$ _" S4 G& z; ~8 x: Y$ d
};! G+ ^7 P7 O6 }/ E% o% q5 k

8 ^; G' i) W& s% f6 k) fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 E$ X# h8 y1 P$ i4 j* x& K        .leds = da850_evm_tl_leds,
; {. @4 x! h, b/ o" X: w  e9 T        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: w( K( ~% O: l3 ^' \# y};9 H/ o' v) F! G# ]$ x' j
- j) I+ |5 j, [5 Q* \6 {9 N! r1 d
static void led_dev_release(struct device *dev)  q* m+ S) g- F% ~9 j7 S% w
{& ^3 w5 }4 |4 c/ ^4 S
};. d* s; Q# N. I

# e0 o9 {- K7 @& \$ V/ a0 lstatic struct platform_device da850_evm_tl_leds_device = {
4 J8 q5 {( [1 E        .name                = "leds-gpio",
0 o. H) v3 x! A' e        .id                = 1,
  R: o! k+ h$ y. F        .dev = {  B# U8 O3 `" T
                .platform_data = &da850_evm_tl_leds_pdata,  `& ]+ y. B% \- @5 F' b4 j& n
                .release = led_dev_release,
8 K3 q* }$ m. T8 ?; Q8 Z        }
5 G$ N$ K$ q- y; U* S3 M, c- X4 i4 D' j};
) Q, b; y/ Y' A* H8 O6 k
$ L8 O# j5 t' l% Nstatic int __init led_platform_init(void)
* o& ~9 W9 K1 X# Y" a+ L( ]& x{
* E' h& A& _" p5 j        int ret;
1 e( U' t# \6 ?5 @& G7 l4 C#if 0
* C+ U  Y0 U3 F1 |* m# T* ~+ t( b        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) Y1 ^3 G0 I) k$ L* K        if (ret)
7 o. S% o* l5 F! Y7 I                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; s6 s: A' t) T                                "%d\n", ret);
7 c1 f5 p. T. l! S; q#endif
0 Q# W, |7 q+ j' E        ret = platform_device_register(&da850_evm_tl_leds_device);
. F" R# Q. ^% j0 Z3 w4 u/ T5 P        if (ret)
1 {* R7 M5 g; L6 u/ v& J) S                pr_warning("Could not register som GPIO expander LEDS");; q1 n: o1 }9 g8 a% y
        else7 y1 _! z7 g) G% Y( X
                printk(KERN_INFO "LED register sucessful!\n");
( A8 ]5 W  x3 |! r' J1 @! v0 j& N+ i/ ?- D( T
        return ret;# f: X2 Z' x5 n3 q5 x) |  T8 i1 a# i, o
}
3 v4 Q% ~$ s3 [* U, {: h# q
" W7 V; I# s8 z& n9 k6 o" Dstatic void __exit led_platform_exit(void)% A" x4 B! `) P0 S3 _$ K
{
* F& i& d0 b; I" x. X9 x" ^        platform_device_unregister(&da850_evm_tl_leds_device);
/ J5 D% y# V" f) W2 c& o$ B$ }8 M) U4 U( o! D% u# W- W- k
        printk(KERN_INFO "LED unregister!\n");
; X& d* f3 o# d# I}
2 R- {- {4 L$ D+ E* B/ h
  Q. w- K5 m# J8 cmodule_init(led_platform_init);/ A  ^) T) B4 i- d
module_exit(led_platform_exit);8 [7 O1 R2 x- y1 _+ @
" ~+ x1 h2 l: B4 q; J0 n+ C8 Y
MODULE_DESCRIPTION("Led platform driver");# ?" \8 |9 k! p# j4 T
MODULE_AUTHOR("Tronlong");# j: A/ m! U0 v/ d4 Q
MODULE_LICENSE("GPL");; Q* q7 }6 k8 d0 O7 q" p
1 t8 S+ O' u" h) z  r+ ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-12 21:34 , Processed in 0.042614 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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