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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. ^1 ~# n! j1 q4 _7 r& x. i$ i#include <linux/init.h>
) _- L; b( [( B, |#include <linux/module.h>
3 u+ J2 \) c" T; ]3 @& w1 z, `2 ?#include <linux/kernel.h>7 ?2 V4 _0 g1 a. H! W# D! C# [
#include <linux/types.h>
" L* J* q) f8 y' }#include <linux/gpio.h>: X' l# S6 a* R" K
#include <linux/leds.h>
1 @8 z. l/ p0 g( v% J6 V#include <linux/platform_device.h>5 Q# a0 u3 p* v3 X

6 v8 r( D3 _* [/ a$ j#include <asm/mach-types.h>
$ c. a6 E" l) B# |4 [#include <asm/mach/arch.h>
: s. R0 q. f" X) n: D#include <mach/da8xx.h>: G* E- M7 S2 ]$ Z/ B  ^' `9 K
#include <mach/mux.h>
" D& w3 q: k9 |) }# N9 ?% I* C4 W5 I, o* g) M
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ X* l) M' a( n: y/ P#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! |8 o7 G& X8 j* s! y) I( y/ R1 B#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 [% K5 \' x/ }5 O! c6 h3 h# O#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). a3 j; U1 g; y& d; o+ k

8 x3 B* R/ g2 v6 ~/* assign the tl som board LED-GPIOs*/
, L% w- c& g: G# xstatic const short da850_evm_tl_user_led_pins[] = {
0 y, C! C. _( I5 F3 Q# L$ g% |        /* These pins are definition at <mach/mux.h> file */
$ w6 M! j+ W- i7 F7 O3 T3 q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: |  ?: O, Y  |5 [: ?
        -16 m- e, M# J3 ?: p4 m  {9 D7 z
};1 }) G- _+ q; K$ I

) G" b/ H( Y% i. c) x. [: Wstatic struct gpio_led da850_evm_tl_leds[] = {: z. z! r& N6 C5 x/ ^- ]) [* U% E: o3 z
        {
# a" J! g) v, Z5 n- A. R( E. U                .active_low = 0,
* Q# U( o( K( M; ^! Y                .gpio = DA850_USER_LED0,
9 v6 i/ u0 ~( o$ s+ g                .name = "user_led0",9 A1 }  ^: J* W
                .default_trigger = "default-on",
/ Z# }! W: O) y. p3 c        },4 G/ H7 E6 B/ c- H3 y$ h
        {
- n7 ]5 F0 A5 Q' J: L1 d                .active_low = 0,
) ~! A$ I$ X0 {$ {9 \+ f( H3 v& {2 ~                .gpio = DA850_USER_LED1,
$ f8 Q  i) l3 j3 n: P1 Q: Z                .name = "user_led1",( m4 s. G1 j9 H7 o- H
                .default_trigger = "default-on",# |! p, Z  T" S
        },
5 g# R) D8 ?3 J) d0 {        {' g; [/ Q3 {( K7 r; A- h6 n
                .active_low = 0,2 ]4 i8 [3 N9 c# C
                .gpio = DA850_USER_LED2,1 U/ I9 J8 l1 l2 ~* \6 a8 `
                .name = "user_led2",: M6 A6 e7 c! Y# h# [% r
                .default_trigger = "default-on",; O/ ?- x: O( p" C( W
        },+ `! E  e! x. ?
        {3 i8 `  n! `; V; M4 r
                .active_low = 0,) c) @1 O; _5 e2 r* T
                .gpio = DA850_USER_LED3,
( k. d8 S, J6 F8 D. e& v! R                .name = "user_led3",
% x: L1 x4 b. o7 z                .default_trigger = "default-on",7 K/ P% s; g! g9 [% m( i
        },9 `( B' [1 |9 b1 j
};: D) X* P/ J% Q% l$ B2 }- T4 u# u* @
; t2 c3 w7 ]# S! B
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' V) |( j' |$ r4 G        .leds = da850_evm_tl_leds,
) g# R* M& s# r. m        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' x! R3 Z+ a, p% f& E* ]};. _/ t- s8 U1 w% |2 A1 z  u

; Z! _* c$ c1 c3 xstatic void led_dev_release(struct device *dev)
9 X. q' C: T" m0 o" m0 \{
  ^) X8 ^* P) t};5 M1 o4 [6 G; Z, y$ e( ?
3 ?1 U5 x$ G$ C
static struct platform_device da850_evm_tl_leds_device = {
4 Y* d6 |1 A* }6 y        .name                = "leds-gpio",1 }! D8 g5 j- C% j
        .id                = 1,/ Y! [; s  v: Z" t# C5 Z$ N
        .dev = {& m# j# g' _6 e' }  d
                .platform_data = &da850_evm_tl_leds_pdata," r, f4 k. `. c! u
                .release = led_dev_release,* M4 l* }* ^' R2 e& ]- x1 }
        }
% |9 x2 C0 y. R( f};2 g: `2 L: }8 b5 S/ f  H5 d

, _+ m, W. [1 I& Jstatic int __init led_platform_init(void)* r$ W2 W* y8 g2 d  @) n
{
# P( J9 u) C0 P5 D  R9 T4 u# f        int ret;
- i& Q# \0 t" t7 L# k#if 02 Q9 R# D) n! L, u
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# g4 W$ j3 p9 ?( S) u% a7 J. z6 E        if (ret)
- n6 G1 B: {( W" O' N: C4 {" c                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". e. x! i$ u6 D, p
                                "%d\n", ret);
# x" l8 E" w) d( P#endif
- t/ x9 T+ U" ?5 t( m        ret = platform_device_register(&da850_evm_tl_leds_device);
' N+ g( Z2 @5 Q* X& n        if (ret). m' X. u) ^9 Q# M0 Q: ~
                pr_warning("Could not register som GPIO expander LEDS");" _% U9 t7 ~+ n7 n8 X
        else
6 X0 W, S" ~+ u- I9 @                printk(KERN_INFO "LED register sucessful!\n");# ?0 ^. s! Z" w5 O( I
. Z# d' P  A+ d9 x
        return ret;1 u  P- Y; I3 B0 \
}* D2 Z9 X: G8 v; }8 Z5 K

6 C4 a1 w7 X: F  e2 vstatic void __exit led_platform_exit(void): z; d6 K& K9 m' D' ]* _4 k) ]
{* t" m( i. v- K
        platform_device_unregister(&da850_evm_tl_leds_device);
  I& I" W2 u: ?7 z1 f$ O; E: k. S# v9 `7 O
        printk(KERN_INFO "LED unregister!\n");
9 f1 h$ N8 k7 @7 ^}8 m: s# _4 H6 z
' n/ J% H( D5 ~% @
module_init(led_platform_init);
2 y# U$ d% ?* n! |5 T5 U6 Wmodule_exit(led_platform_exit);2 ~6 U! Q6 P' [$ S* z) q
: I0 \/ k) [$ ^. l. a
MODULE_DESCRIPTION("Led platform driver");
, n5 g) A/ H, G, V5 T- {% gMODULE_AUTHOR("Tronlong");7 l5 f7 H7 d0 s3 A: d& m: ~7 r
MODULE_LICENSE("GPL");# Y% @7 l) f3 n8 Q! ~  K

" B; C* \4 j9 y$ g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-14 08:31 , Processed in 0.040025 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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