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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; g1 B8 [: \% G. ?; s& B  M3 ^: a2 {) L#include <linux/init.h>- T) x1 B( H) k5 p+ j# `
#include <linux/module.h>
6 ]* l& r3 w9 H) s. E" T#include <linux/kernel.h>
' j' |0 X# \& s% K. r#include <linux/types.h>) B9 k. D1 N( S' [
#include <linux/gpio.h>; m' \- d6 w/ O! H6 T4 F; Q! i) h3 p
#include <linux/leds.h>
! w/ x& l6 H2 J  M+ _" G) H#include <linux/platform_device.h>- }, d# x/ p2 Q5 R$ m
; `5 x/ x: ?$ j
#include <asm/mach-types.h>) X' a) f7 u1 }1 K+ @1 B
#include <asm/mach/arch.h>) g' j# c: \7 y
#include <mach/da8xx.h>/ D+ T8 t4 v# S* X! ~
#include <mach/mux.h>5 N$ K5 F3 }' R
5 r  b0 n/ _) c# o# m$ @( M9 }" H9 Q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, e( q6 y' K  J' s& ^7 w#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 l9 H- G, L- j) n4 N
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" b2 J" }2 e0 A1 t
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 \" _# F5 c1 G$ d' M
6 D, J: `2 c; Y0 D2 b+ |
/* assign the tl som board LED-GPIOs*/' J& [) x% e: h4 s
static const short da850_evm_tl_user_led_pins[] = {3 {+ ]- N6 p' {5 d
        /* These pins are definition at <mach/mux.h> file */
' t" ]2 j- R1 Y. y$ ^0 ~/ i1 o        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- Y4 ~, B* s! Q8 `
        -1$ j  q/ t/ F2 P8 ~
};# u- l, W; z, p4 y+ M: t& J

/ e% }, Z' B. J0 Ustatic struct gpio_led da850_evm_tl_leds[] = {
8 ~5 N5 ]6 o6 Y9 q1 l9 Z# [        {9 M# r- V4 ]0 `& T6 R9 ^
                .active_low = 0,5 p) u: A: J" a. G0 M% S
                .gpio = DA850_USER_LED0,
9 t/ _/ c  g7 n; M/ Z( B, I" A" C% a                .name = "user_led0",! I! @% H# T+ T7 B
                .default_trigger = "default-on",6 ]2 Z1 ?$ N% t3 _  R9 z
        },
  K$ n7 B; G* V  x        {
' A  U9 i/ `( G                .active_low = 0,- |+ j% X9 m3 t& H$ U7 G. ~
                .gpio = DA850_USER_LED1,
  }+ h$ p+ A8 ?, J& I  o% _0 q                .name = "user_led1",
2 |$ Z, w0 L: {* G                .default_trigger = "default-on",/ ^# e4 H, @8 H
        },
$ Y" [; v) G0 W# f' K% z+ P        {
4 f" C" @1 M6 _( T                .active_low = 0,
3 T0 `% T+ O! m5 ?, k                .gpio = DA850_USER_LED2,
) b: P9 x# B) U$ U' C1 l: y2 |                .name = "user_led2",9 J% e# y6 s) R3 q+ r7 j
                .default_trigger = "default-on",& P/ Y0 z+ p# [: z
        },
0 M5 b) ~& @  N        {, Q" \7 h$ v7 d- N& {
                .active_low = 0,
- ?4 j4 [% y/ u9 U                .gpio = DA850_USER_LED3,  ?5 n2 ?3 O! i" |
                .name = "user_led3",
" W1 f$ a; Y% f. C0 ?2 ]' u                .default_trigger = "default-on",
4 j, D6 g7 e  i" x6 J        },8 M' c0 `0 s7 Z. s
};
) l5 r# |: F0 ]: H
( W( v, ^/ i" [' H3 I$ Ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, q3 R) [8 D7 C+ o' W) P
        .leds = da850_evm_tl_leds,
4 K, X# B' h" o- p4 q) r/ F        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  O2 C5 H% g) [3 |9 o( u* ]* B
};3 g: h& ~. O  n' @7 J6 |

  @( D3 l- m# z9 W/ a6 ustatic void led_dev_release(struct device *dev)
5 h& K; M9 M; q& v2 Q3 K{( c4 o" S  I: `5 ~  r. A' [
};
% O) y3 S1 q( d% p; L3 I, c  ~$ ?- L' b
static struct platform_device da850_evm_tl_leds_device = {
6 D3 x/ v0 X; O        .name                = "leds-gpio",1 v) v6 ]9 n" G% s8 m2 t
        .id                = 1,
* f% c3 K# R! l" f) ?        .dev = {: Z: r' m' j$ G9 i" E
                .platform_data = &da850_evm_tl_leds_pdata,
$ W3 W5 K9 u+ e# l                .release = led_dev_release,
+ A' Z1 `- m/ l2 p7 p$ J& D  L$ a        }
* W+ R; H- I5 V0 E6 ]};! k* C; c# S! j: b# P5 V
% h4 k* Q- q1 N$ [
static int __init led_platform_init(void)
* f, z$ z; s' p9 Y6 s( c. \" u3 f{5 o4 L& X8 R3 T) |
        int ret;
, ]2 e% N6 S- V* i& E! z#if 0
3 i2 K  r. j( K3 W3 |        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; c" @! n6 H9 b" Y        if (ret)
  V2 ~% q! c5 r) z0 m- L                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! i; P3 o; V' u0 d4 y0 \
                                "%d\n", ret);* E4 B8 M2 p; s, M2 E
#endif
  j& Q! V9 @; s+ A. \# c! L        ret = platform_device_register(&da850_evm_tl_leds_device);
+ ]' `# h1 O5 i        if (ret)
% S3 G8 y  K9 F: D$ Q                pr_warning("Could not register som GPIO expander LEDS");5 I4 K# V0 `/ \
        else- Q' h* h9 f. R' a4 N
                printk(KERN_INFO "LED register sucessful!\n");  m7 m  k$ s6 O: v$ N# E

8 j' S. P4 f/ G$ ?( [* E        return ret;
" h. \% N; g2 ]0 G1 P  |}
  u% K9 W6 f# M5 y1 \2 k/ E) j/ Q, _& [" E2 u( T1 Y2 l
static void __exit led_platform_exit(void), E5 l9 z  d3 A8 s
{( z* O# q' w0 {
        platform_device_unregister(&da850_evm_tl_leds_device);- f1 @4 K8 x# z
- H. p6 [0 r9 H( Z
        printk(KERN_INFO "LED unregister!\n");. c9 A8 p4 f6 @3 \0 e
}6 a% X( M) q4 H* Z! }# O
8 D* {2 Q5 W% `5 w
module_init(led_platform_init);- z9 J/ \( x! q7 @
module_exit(led_platform_exit);
! J0 n+ k' i% h; Z  I  f4 G$ m# z: y* R* d. Y  {
MODULE_DESCRIPTION("Led platform driver");9 g; R! i1 B( W- z1 ]
MODULE_AUTHOR("Tronlong");
) T( t7 E0 q: r' v5 G+ uMODULE_LICENSE("GPL");- W2 P- D1 j8 k  d7 r

. ]0 q2 |& R% X; m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-24 05:24 , Processed in 0.037694 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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