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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 D+ ?- \# C/ N6 N* y0 C" O- _
#include <linux/init.h>* G% r8 t8 z+ c# C  q* ^4 n, L1 p& X: D
#include <linux/module.h>
* Y; o6 j" {' Q: E# j0 m7 w#include <linux/kernel.h>0 u* Y: S6 _0 l2 q+ [! a3 o$ ~
#include <linux/types.h>  Q: W0 T# F' s2 K& c5 S- [
#include <linux/gpio.h>
7 N; L) G% I1 ~1 t) q  D#include <linux/leds.h>1 q* F/ O- h& j9 E1 {* ]
#include <linux/platform_device.h>
% S4 y0 x0 l- c9 {. f8 y# q" }% }( g! s
#include <asm/mach-types.h>* z2 v5 v$ r! g' O
#include <asm/mach/arch.h>
0 C: e# y; e; U#include <mach/da8xx.h>  R/ u2 n, p4 u+ C' b
#include <mach/mux.h>
  T$ P0 [6 y0 b9 @4 S6 j- O4 G  R4 B' }% c; [1 h$ [
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ p/ A, B, l9 L3 I) O
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 ]9 A: H8 X: |; T  H3 T, S( O
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& P/ ~) c( M% T#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( l. y- u. H5 O' a- s/ |& U

6 @4 L. r9 P7 [/ f+ P4 C/* assign the tl som board LED-GPIOs*/
. w- Y5 k/ O3 Z. M% J- Lstatic const short da850_evm_tl_user_led_pins[] = {- [) u  {: k; u' }4 k
        /* These pins are definition at <mach/mux.h> file */
! s9 f( M( _: z  N: P- u; P( h# A) W        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' K) V) _* |7 T' U0 J/ y        -1
% c3 d/ e* w3 L$ `, c" V% `3 W$ G9 V, T};
- J/ Q( o' C' ?
1 T: w2 y0 F6 B9 o$ L) y* Ustatic struct gpio_led da850_evm_tl_leds[] = {+ d& o( H3 s; Q/ C) N% N
        {4 E. l8 m9 Z- j* b6 g
                .active_low = 0,. J4 Z& R! a" Q1 C6 s$ x$ @! b
                .gpio = DA850_USER_LED0,8 v+ }# ?: j) C' b0 S9 n
                .name = "user_led0",
0 D# C/ J/ u+ C3 @5 |. F1 }                .default_trigger = "default-on",5 i& L/ V. m: B$ s
        },5 J/ L1 E/ w5 y' ~8 j
        {
8 y- }) H( ?  G' j. Z( M8 k2 ^; Z                .active_low = 0,
; S. h; d% j" O6 V6 x                .gpio = DA850_USER_LED1,% E& e% c, p; w  B1 B- S7 D$ T
                .name = "user_led1",' W( `( p! g1 [+ ?
                .default_trigger = "default-on",
% p4 D6 ^# B- W, n        },
; H: H  V2 Y9 \( _3 E& x: S. i        {- o2 t! }/ o% u2 s5 O) }3 T
                .active_low = 0,
. Z/ T( F$ |: w; I                .gpio = DA850_USER_LED2,; i3 x, J0 y6 D# Z& q4 `
                .name = "user_led2",. R- [0 Y0 K9 {* _
                .default_trigger = "default-on",* U6 `8 l) b8 W+ s6 m
        },$ |/ x6 ^% O* U: x
        {- d/ |  w; M7 @5 k# Y
                .active_low = 0,
' X* x  @; O" ?                .gpio = DA850_USER_LED3,$ {# q/ a$ o4 o3 b8 V$ i5 H
                .name = "user_led3",
, _2 t8 X$ u2 }- L                .default_trigger = "default-on",
/ E* J/ o$ a) r: n        },
" w3 f  @8 j; M, D( z* w};
7 r: @6 V& z, A; H) p
! P2 }* V8 }7 V  P  ^1 Q. zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 X! S2 o) {/ [( S6 ]: L6 Y        .leds = da850_evm_tl_leds,
0 r! ^4 T$ f3 V! h2 B- |2 S3 F/ x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ |7 }1 t* d. R; Z6 q. A
};/ A3 f  t: X, Z. v$ L# q* ]

3 Q+ }$ v2 h  v; cstatic void led_dev_release(struct device *dev)
; y; `- o' N) S2 z, Q{
  [3 X- h  }6 ~0 p: @3 X( s: a};1 e$ m! e1 b  u
# d- x+ [& T' d
static struct platform_device da850_evm_tl_leds_device = {
, h: g* C3 G5 v( I        .name                = "leds-gpio",
0 k3 P! X" v1 B6 X2 `- I" \        .id                = 1,' Z2 G( z& {9 `% P6 P9 |
        .dev = {8 s) s8 F7 i  J6 @
                .platform_data = &da850_evm_tl_leds_pdata,
. {3 [' r8 E1 J; M                .release = led_dev_release,
! B# `2 r5 {" o: z8 U9 ]2 a        }& |. |, T+ v/ x$ v; G- [2 d
};
4 P9 b# y" r* I, S3 T' u8 Z+ e) U0 {
static int __init led_platform_init(void)/ H# E' q3 h1 x5 a$ g
{7 |9 O1 m: D: C0 X1 ~' D
        int ret;
$ s3 }# i/ f) K& _7 Y9 _#if 0
2 {, Y7 q9 J& u, K1 ~& A2 d        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, R3 Q9 }# [1 O# ~' O& v/ c! }        if (ret)
8 E& a) G# _, P- Y0 b                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") ]& Y7 U4 E' P. Z5 F  B& I
                                "%d\n", ret);
- h# y' G% b* E! U3 F#endif
9 S$ ~4 K5 B2 u) B        ret = platform_device_register(&da850_evm_tl_leds_device);3 E: n3 ~9 l; h% @& S. S9 D
        if (ret), {! t5 I5 h# i+ T* \$ P/ e
                pr_warning("Could not register som GPIO expander LEDS");
# u7 j$ H( I+ Z  f1 [' d0 _        else" N$ ]2 v! b: Y) ~, i' }
                printk(KERN_INFO "LED register sucessful!\n");
3 {5 S$ e7 ?3 A6 T2 l( k3 u) {4 m4 }* W, N: P) b/ U6 u. Q
        return ret;% `/ k, ^2 v, T4 l$ d' [, D4 W
}
# ?) I8 n$ H; j4 `2 u0 c
; ^3 R9 O; v6 fstatic void __exit led_platform_exit(void)
- _/ N9 x( s  t  w5 x{
! K/ f/ X9 ^! q8 q$ Y        platform_device_unregister(&da850_evm_tl_leds_device);  R7 E/ q+ ~1 S1 h; t4 Q

# v- P6 T0 f4 H7 i& W1 b; A; L        printk(KERN_INFO "LED unregister!\n");
9 n5 n2 X! I( l$ n$ N}
) X3 [! N) w2 v7 Q. B( v* M( v! g9 P* t, \
module_init(led_platform_init);
/ N! u" f' t% _2 |6 Vmodule_exit(led_platform_exit);* d1 b. Z- m- x+ Q( K& @
! H) j( A( e1 y7 ]2 K7 L. J
MODULE_DESCRIPTION("Led platform driver");7 o5 N6 z+ j2 Z. L' q2 s( h; q
MODULE_AUTHOR("Tronlong");
5 q3 V+ z5 K2 cMODULE_LICENSE("GPL");5 w, d, G( ]. _
3 u* s- ?  n3 D, I6 A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-18 17:02 , Processed in 0.038528 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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