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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。: `( ?- c3 a5 d' }
#include <linux/init.h>4 \2 A  B% d, R" e( G, ~
#include <linux/module.h>
" F  u* t# K+ p% |) R- A6 j#include <linux/kernel.h>3 v, H' Q' _! {& L
#include <linux/types.h>
( c) W; F7 F6 F( s* }: g, y#include <linux/gpio.h>- [* _- b: {: e( e6 }  U( {
#include <linux/leds.h>; n/ s! a* h; ?/ q, N
#include <linux/platform_device.h>
# g8 N) f' G) B# M! p$ Q, i3 q) c  k% H2 ~, _
#include <asm/mach-types.h>
/ `/ _8 M7 s9 H/ _#include <asm/mach/arch.h>
4 I* [/ R  F+ ?8 V" N4 C#include <mach/da8xx.h>8 {, W4 @3 i2 N3 X0 ?) R
#include <mach/mux.h>
- L& d. h$ X3 Y8 r& D) z0 p' U! E4 K7 B
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ j5 u. g; _% [+ k#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 z+ J, s  A0 x' `1 e#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ p! V; m8 }  w- C( j& M#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- W, T* ]2 a+ Y2 v3 t, p

% F: Z( V+ K$ L/* assign the tl som board LED-GPIOs*/2 n* ]9 a2 Q+ T
static const short da850_evm_tl_user_led_pins[] = {$ o* f3 O$ B8 M# k& f
        /* These pins are definition at <mach/mux.h> file */2 c) o5 w. ]6 K. x% i8 d
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, J. a& C/ _# j# f7 N
        -1
8 E" Q7 [8 d5 `, V};" t8 A8 k' m& q

6 x& }9 r' ?9 }0 |/ zstatic struct gpio_led da850_evm_tl_leds[] = {
' O. i! Q% C+ y" H        {
" n( \3 o4 b* m: C* |8 k                .active_low = 0,; I& s; d2 i0 A8 j1 t
                .gpio = DA850_USER_LED0,
3 @* ^1 t: j+ T( ]                .name = "user_led0",% m# c! W5 O+ ^+ l
                .default_trigger = "default-on",
3 [, }3 p" p7 R/ `# q) n        },. r, Z7 ~9 A4 l( D1 P
        {+ j; B- v& x: D5 ?. b/ @" `4 ^
                .active_low = 0,
' ~/ V) _  A- w& Y' n; W. b                .gpio = DA850_USER_LED1,
  P3 g) w# ]+ w                .name = "user_led1",5 w) a/ m* h' T6 N9 P
                .default_trigger = "default-on",4 L1 I$ C/ s* b& w9 g
        },/ e* k. L" Z. L3 p- j! P
        {8 T8 S, s' ~. V' v
                .active_low = 0,$ `! |/ w, {: G$ u- v8 B$ v7 G
                .gpio = DA850_USER_LED2,
$ l. M3 L& M$ i+ Y" B9 o) u7 g  m0 H                .name = "user_led2",
0 v. o3 u- c  i+ p2 L2 P                .default_trigger = "default-on",
6 H5 u$ b: F( z  S% K        },: Y; [3 c. R; x: v
        {- |. U7 H# D# i- L/ K: Y* m1 }
                .active_low = 0,/ V: ]! l/ c: S/ Y; Z
                .gpio = DA850_USER_LED3,' K; V% m# I$ Y( P' H% U
                .name = "user_led3",& v. n! }& f5 r( E0 U
                .default_trigger = "default-on",4 |& p& g, O8 E, ?  I
        },
; `$ ]6 C+ w: f% X+ G; O};
# A# [& c7 Q6 N% p" O- L
+ a4 t  }. B) X8 J$ pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 G+ ]7 M; F( j9 `
        .leds = da850_evm_tl_leds,
( u4 y: U0 `8 v' B" u6 {* O        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( n+ B+ P7 l; d0 [
};
+ r6 r( \* G" P0 m8 V9 ?% Q) H) `% Z! ~
static void led_dev_release(struct device *dev)
9 Y8 {0 S3 }4 ]" ^4 x{/ {3 X, \9 k2 Z" x) h5 A2 |$ K
};
! i, u5 P  l% ^; \  ]8 Z( N! R3 s3 F
static struct platform_device da850_evm_tl_leds_device = {
# M+ j* `, [; ^2 d) d* W+ T' A5 O        .name                = "leds-gpio",
' S0 S: t+ ~- N9 T        .id                = 1,3 u- e9 `* n( d9 T
        .dev = {, r7 n6 K: ^# x& Y" `: h
                .platform_data = &da850_evm_tl_leds_pdata,+ C/ m0 V8 w* \$ z
                .release = led_dev_release,
  y0 o* E2 d( H# }3 {$ U; E- U        }# m; p( b4 G' j+ v
};
- @2 f& k# S$ r  |1 u/ u
5 P1 B" u2 f4 g. R6 \8 _static int __init led_platform_init(void); G9 M7 G- D) p) ?$ O5 m: \
{* Z* h# S6 o8 w
        int ret;6 O8 F; v+ z- f% o
#if 0
  ?- G9 r8 ~4 G; Z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* C6 t; Q* {: e" G3 f        if (ret)
2 L% l1 ?. W# Y9 W* r, a8 ?                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") }4 i! }. O$ F1 T- O) z
                                "%d\n", ret);2 k( A2 s  \0 Y
#endif
& p2 W" V- f* Q5 B/ h        ret = platform_device_register(&da850_evm_tl_leds_device);
2 O" _. t7 _* }# v$ R% |        if (ret): `  p7 K6 F$ p4 }9 j& n
                pr_warning("Could not register som GPIO expander LEDS");/ E5 K* U& ?" z4 v
        else
9 W& X9 D% |3 M; M; h. Z! N4 a                printk(KERN_INFO "LED register sucessful!\n");
5 z! h7 G- _3 [+ u& ?. Q  i
" ^/ T; o/ x( Q8 S' O% d1 d* }* l        return ret;+ b" ^+ A) t- y7 Z- \' f! h0 d
}
" ]8 _$ o) u, i0 W) l' _
: ~* M8 H, F. m) Pstatic void __exit led_platform_exit(void)
9 P. j/ b. l! P{
. A# y$ _! D; U: I        platform_device_unregister(&da850_evm_tl_leds_device);
% O  r: Z+ s% U  z4 V* X5 \2 V
$ X8 F) B& t: x0 q        printk(KERN_INFO "LED unregister!\n");" g# `+ P9 T! i6 V
}
3 }1 o9 N4 a, k; X) ]/ Z6 [
4 O8 {. Q7 z$ D/ @( j3 imodule_init(led_platform_init);# }  b8 U9 c  r* v4 @: u
module_exit(led_platform_exit);+ _: m9 B4 R/ q& x+ [9 O; B4 `

- s& O, O& W  X# N: x0 Q5 UMODULE_DESCRIPTION("Led platform driver");
6 T0 V  n# q& t& P. W3 N8 IMODULE_AUTHOR("Tronlong");) V0 H' U, X5 M5 m
MODULE_LICENSE("GPL");
8 s/ |' K% j! I
3 l" T3 q3 s" e0 Q: q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-25 18:19 , Processed in 0.041150 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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