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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! V" Q3 H; c1 ]4 o( Q4 v# Z" P#include <linux/init.h>
4 ^% `+ u  D- x#include <linux/module.h>
* {0 [8 g/ k& E#include <linux/kernel.h>5 W% x; r; S6 z1 Y& n
#include <linux/types.h>2 i. ^$ C& F2 h# v
#include <linux/gpio.h>
* \' d+ O: [: `& v6 z#include <linux/leds.h>) d/ Z8 Q8 _0 T, h- E/ i
#include <linux/platform_device.h>' {' B: Q' R1 E+ U6 D

. y  t/ |' n! o. M#include <asm/mach-types.h>0 o( e) E2 k. W: l7 {
#include <asm/mach/arch.h>
0 d3 ~. j) u1 T#include <mach/da8xx.h>8 q& X+ I" ^; s# \5 x- S
#include <mach/mux.h>
" I6 e' a. J3 t! S5 _* B
7 O8 u, T( w4 H7 V#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 U8 O/ V, \9 E0 K1 ?0 K#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  P- x' }1 }2 S#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: x, k. {# {, T2 {8 N4 F5 f2 `#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 J* N) F  e4 h$ G, ?8 x) W3 c$ O# f

& }& A+ y  y, s2 c4 o/* assign the tl som board LED-GPIOs*/! R+ ?% l' o. g' E/ S; \; i$ C
static const short da850_evm_tl_user_led_pins[] = {
: @+ U) M" Q! I+ N. D% h        /* These pins are definition at <mach/mux.h> file */
* p$ [7 z2 h# d& Q1 H( B        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& ~7 ?& z$ N- v' }3 d        -1
8 V& M; Q( r" B0 P  \) |};! ]8 e0 T8 k4 ~0 G/ F2 d6 D8 s" ?# B
0 m% z0 d/ L5 `! H8 k% {
static struct gpio_led da850_evm_tl_leds[] = {
3 [# N9 Q8 Y- E% O8 Q+ R& J+ @& \        {
! K+ E5 `8 c1 B% H6 a$ l                .active_low = 0,6 e( @+ b0 w1 r$ d  S. `, @
                .gpio = DA850_USER_LED0,
4 [4 M" Q3 H0 ^1 G8 t: p' l                .name = "user_led0",
" w8 a# ]0 k" K( J* @                .default_trigger = "default-on",5 \% I4 _5 C" Q" T2 S( s, r& C
        },
2 C# y; q5 A$ C( C' g        {, T5 |, V0 t+ ~! V' {9 k
                .active_low = 0,1 l0 o* c+ Z0 R( m0 h
                .gpio = DA850_USER_LED1,3 b0 G- v4 F: |% Y) p# o
                .name = "user_led1",
5 ~- W9 l' n- j8 G# E" K8 @                .default_trigger = "default-on",
( P7 E/ D* f+ ~, O        },
# v7 P  _( P1 M6 @/ U        {" H& b, T3 I; l* |( i
                .active_low = 0,3 f1 [5 W/ R) @$ r, y
                .gpio = DA850_USER_LED2,
( ]% l! M. U7 t2 m- d# M* D9 l                .name = "user_led2",
9 u5 I7 O9 P4 y0 ~$ `                .default_trigger = "default-on",
* ~4 z  c5 c. _, h        },4 y; x7 [$ y: [& ?& n# _: p3 H
        {( j3 H$ ]/ i$ E
                .active_low = 0,% ]# r% K/ p$ w8 p# i! x$ c9 M
                .gpio = DA850_USER_LED3,
7 k9 V8 S1 [3 Z$ Z                .name = "user_led3",
1 a* A" n8 w& c/ o. q/ ]) E                .default_trigger = "default-on",- h" m! Q) ^& S8 Q2 T
        },* N) d$ U$ h* ]6 b
};5 w- C6 d# N0 m7 D' W4 |
/ m  Z  C3 |" ~6 V
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 T" w  R* k" B7 h' i        .leds = da850_evm_tl_leds,
( @3 w2 U" {4 g9 i        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# ?5 t2 `# F: r# n' e+ |
};) X6 y/ M7 B' ?  P# r) l
4 q0 i( m  u4 J$ O* k' j- T: G
static void led_dev_release(struct device *dev)
6 `2 ^# S( T6 K% H' c  `% k{7 T8 n4 }: M, @
};
( i8 N. P. {1 w( J5 Q4 y
1 [, z, L: ^7 j& x  gstatic struct platform_device da850_evm_tl_leds_device = {- ]6 X& n/ u  b, ^: \
        .name                = "leds-gpio",8 l" B- z; _# K* n9 t. W% d% h
        .id                = 1,: s) o& Q! J# a: m
        .dev = {
2 W; K4 |* @2 ^) \  X8 {# J                .platform_data = &da850_evm_tl_leds_pdata,0 `# S# J* V( ?: U" C
                .release = led_dev_release,
) c- ~& z7 O: m( I+ i  R        }
4 G. Z0 S7 Q9 [: g" M: b};
. _; ?$ H% `/ \2 T0 g& K: g6 h- o# z$ |, ^
static int __init led_platform_init(void): f/ X/ @8 P5 `, ~: \) \0 a
{' K6 [; N# J6 y# G/ {/ D; _
        int ret;  `! X9 c: D0 I1 Q& z7 F
#if 04 h  k0 y- M$ c" I
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 K; \+ h) i1 U7 d
        if (ret). `% S4 X, B) m0 Q! F# h( v
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ d& n, W/ R! G4 Z0 f( l
                                "%d\n", ret);
4 a7 E' j& Z" Z0 O& B% `#endif
8 [0 a  ~. [4 N# R* U7 y" \- n        ret = platform_device_register(&da850_evm_tl_leds_device);9 v/ N, d% t4 z6 i* O
        if (ret)
0 [$ S% g& r. e                pr_warning("Could not register som GPIO expander LEDS");0 l0 f+ Y' G1 J9 r
        else" \- b1 ^  y) s3 R8 J* e; g
                printk(KERN_INFO "LED register sucessful!\n");
* h5 r9 X) |) ?, d; l( |
6 H! L: U+ q, Z1 M) r+ n* R        return ret;
0 R9 I6 ~% o$ U" U9 M; Y4 L}
3 T! i4 R" [2 ^" u; j0 R* U8 r3 ]# C6 `/ @* j
static void __exit led_platform_exit(void)
* L: e1 z6 ]; g1 u{/ D, Y7 u* b1 X0 w. n
        platform_device_unregister(&da850_evm_tl_leds_device);  W, n) I9 ]: `" k1 n
# g; ?# d2 D: R7 b- a
        printk(KERN_INFO "LED unregister!\n");
) G& J: m! q" \: l. X$ `}
" v; Z& @# J( ~9 S
# s4 |& p2 G* o, s9 t7 S$ N& Imodule_init(led_platform_init);
! Z& q, E! P. [$ n3 Jmodule_exit(led_platform_exit);
# [: T# Y7 P: Z: U1 J& w" {% p3 y' R3 G2 W/ u
MODULE_DESCRIPTION("Led platform driver");
/ s7 |5 u5 H4 o- x. nMODULE_AUTHOR("Tronlong");
* H/ v+ X: a' S+ p$ ]# cMODULE_LICENSE("GPL");* Y' z; R: t; G8 R
9 x( o4 n0 n- U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-21 10:08 , Processed in 0.045226 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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