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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 c8 r8 `6 E( l1 `0 I#include <linux/init.h>
1 V* L% Y! @3 _+ V#include <linux/module.h>
! b5 T& f0 B: t% `#include <linux/kernel.h>
) F5 E+ F% S: T! d# L; Z! s#include <linux/types.h>( Q. j. U( Y3 N: R9 o
#include <linux/gpio.h>4 n' h: d0 O% y; k  l( D9 T
#include <linux/leds.h>
7 d* h  m5 H& G* K# Z6 E#include <linux/platform_device.h>
8 ?3 B5 j5 J6 J8 G- r
% v& B  W/ ]+ J' o( A9 o#include <asm/mach-types.h>
' J* z* V; N. \5 y5 D" g7 w5 G" A#include <asm/mach/arch.h>
* T3 U6 ~2 L  W, B7 t/ O3 _#include <mach/da8xx.h>$ E" h  Y# V9 a% Z) r6 C
#include <mach/mux.h>
# l4 u! p9 F5 l2 |) t+ h( `6 j! l9 ?5 g$ ], K1 A
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). q' l' t& P' I& j; K
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 |0 b' B; l; z3 ?) z& \$ j- T7 g" I#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* M# `/ D( s, ^" R+ i7 O
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 `) G% _8 y6 b, \
+ ~. R+ V- B; f8 G- V/ ^! s/* assign the tl som board LED-GPIOs*/
9 j1 m) ^: W- N# |% Hstatic const short da850_evm_tl_user_led_pins[] = {
! {  k1 T% j* U7 O$ ~        /* These pins are definition at <mach/mux.h> file */) }0 j7 D, R# h4 n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' p% w! t5 l" y5 s* k  [        -1
: k% W8 j. |, x, u/ J7 ^};
2 c4 z0 j  V) N/ S; r: T/ N2 Q+ B8 w- {' O
static struct gpio_led da850_evm_tl_leds[] = {
9 E# B# a$ J' Y: W        {
* X+ c8 u. R6 ^- F                .active_low = 0,
; v$ ^% r; I. ^% @6 j                .gpio = DA850_USER_LED0,
2 L2 s+ ^* k# b                .name = "user_led0",, e/ s( d8 j7 I# D; j
                .default_trigger = "default-on",
% C, {' s" |6 T9 S0 W' z* n) x        },$ e/ u' K& d, `- U0 a* w' @
        {# n2 m5 p$ s, U- V0 i# q% P; i
                .active_low = 0,
& Y( [/ a5 W3 q5 \) |                .gpio = DA850_USER_LED1,
  x" I3 C* y' I! y! v: ~0 r! q                .name = "user_led1",; n. S8 M3 }, O" f
                .default_trigger = "default-on",
8 h& n$ v- p# z8 ?" s# ~+ K        },
4 C! g" l6 {; e6 E9 y3 J        {) b4 W9 a% t9 e8 M  W
                .active_low = 0,$ R. y0 _) i) l8 ^
                .gpio = DA850_USER_LED2,
* O8 b% K6 {$ e                .name = "user_led2",
9 o2 I! s- ]. C4 u2 a1 L                .default_trigger = "default-on",  ?7 _/ A+ I/ H' @9 v8 p* p$ P. B" }$ A
        },8 y. b7 g& W4 L/ ]$ W1 ~
        {
* S" j6 m* b/ B! I                .active_low = 0,$ o% x2 b5 L" G" ^+ L
                .gpio = DA850_USER_LED3,
: s' B* e: S* V* e3 `                .name = "user_led3",! H' \! r  W( N9 _- ~  Y2 N/ d6 C9 M* i
                .default_trigger = "default-on",
* m: g; l  x" O# L2 c        },
, U3 G" b. y$ X! L. d$ C};, W" k) e9 e& i

( k8 b% N/ e2 C6 g4 Lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, E$ W  h6 N# }( _2 @$ o% u
        .leds = da850_evm_tl_leds,- U6 r7 B) g1 k: j0 J
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; W( t: O' d" E. N: Q  T' q
};. h- o) x# ]2 i! [" l9 t+ F
' q* p0 e: F3 X4 E6 Q# z: R7 S
static void led_dev_release(struct device *dev)
1 }: v9 t$ s4 S- ?9 T8 L) w{
# _/ W$ Z: Y% \8 S};+ U$ W: Z0 D. t9 t4 P

8 L7 F8 y4 S2 w% @static struct platform_device da850_evm_tl_leds_device = {
& Z1 h* [' v5 j        .name                = "leds-gpio",
  F9 u' _! _% t( d  ]( _        .id                = 1,0 R' I' h9 ?9 l
        .dev = {
3 n: ?, y& P* }+ S4 w, R& @9 o                .platform_data = &da850_evm_tl_leds_pdata,
) H) ~8 N2 C0 Z                .release = led_dev_release,- R' m! ?- }; C4 E
        }) Y9 U- W3 _6 Q5 k" C9 d
};$ O/ G1 y5 E* {! h

8 s4 N) A$ M  X7 z; j, Jstatic int __init led_platform_init(void)" G/ A4 t/ B! }1 z7 b
{
0 b8 m8 l; w9 A2 j2 S8 p        int ret;
/ e6 j: h, _8 u7 F* `  b# z# ?#if 0. h$ R0 a  T0 V1 n, G, o" `4 }
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. @' \" M' g  I$ }        if (ret)
# Y/ {  B1 Y6 {: ~; D                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
& N; q: P+ R3 }, T* U/ W                                "%d\n", ret);8 W) d, z9 D/ G  e- x* }" @3 g
#endif, }0 Q* @7 G/ n  d
        ret = platform_device_register(&da850_evm_tl_leds_device);
& s6 _% z  c) F/ G        if (ret): C$ K- X0 u) |$ F8 {/ l
                pr_warning("Could not register som GPIO expander LEDS");4 d1 `2 W- |3 q) U" [
        else
" J+ [' K  w5 T7 q- U                printk(KERN_INFO "LED register sucessful!\n");
* h$ i+ e4 Z/ t8 o; ?0 I! c* _# n# @
        return ret;* g0 i7 ^5 Y( [
}$ p- g3 u3 h. @

7 c9 T; N; F1 o; Kstatic void __exit led_platform_exit(void)# R0 P2 v7 B& H( Y2 c0 v) Z- n% O* X7 e
{' y3 j) |) _+ \& v2 l
        platform_device_unregister(&da850_evm_tl_leds_device);
7 f4 q% R8 a! N6 k+ `# F( {
* E5 t+ l& q1 J' I) v        printk(KERN_INFO "LED unregister!\n");
9 P/ `+ C; K( d: l}' i. O( F. j- `: s

. x7 A4 R3 Q; }. Z9 D/ k1 p$ W8 umodule_init(led_platform_init);
7 r! t! Z6 A3 P9 p& ?# Zmodule_exit(led_platform_exit);2 d4 Y5 i, j+ n" b  X, m
# Y9 ]$ R& n5 h' r
MODULE_DESCRIPTION("Led platform driver");
6 R. j1 n) ?' e# c/ r2 [4 D0 rMODULE_AUTHOR("Tronlong");
) I$ C! t. F% i% |- e/ RMODULE_LICENSE("GPL");3 \2 R! o7 y$ u' W

9 O0 k$ d5 b! ]: X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-2 00:41 , Processed in 0.052948 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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