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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# w0 r/ V/ g* r: S#include <linux/init.h>4 A9 l8 }# O' K# V4 U5 [$ q) q
#include <linux/module.h>$ a' F* n8 a4 B. k% N7 C
#include <linux/kernel.h>% V9 ]7 p: e! _4 k9 V# |
#include <linux/types.h>% w7 O; K" C( G2 M
#include <linux/gpio.h>  D  _% M$ e5 V8 \
#include <linux/leds.h>
4 i  z4 t& r* O' h#include <linux/platform_device.h>& T& R1 Y8 f  y' J# G

- ^* Y$ T0 D* P# Z7 {* B3 X#include <asm/mach-types.h>
6 C' S* Q/ Y4 Y% t. _% g#include <asm/mach/arch.h>, A7 \- W8 U) g* l4 Z) T8 u" v
#include <mach/da8xx.h>
, F' W" y, N* @! _- g#include <mach/mux.h>
* V: W0 M+ V9 a; `7 k$ ~: [
0 }1 G+ E4 s, v& ^+ }- w$ o) b#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( R  G; `) z- I* d1 y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 J% H# F/ E7 Q6 E+ n2 G) A
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 G% [& ~8 @7 _#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 ]" |' R1 x- a6 G* r
  `7 b% L9 e# h3 [: U1 w
/* assign the tl som board LED-GPIOs*/: u) M4 h" h! ^0 F+ T' E7 y  r
static const short da850_evm_tl_user_led_pins[] = {# S- R, f$ M' s' Q# L/ T
        /* These pins are definition at <mach/mux.h> file */
3 R( d/ ^5 ]1 T/ a% j+ T+ ?$ j) C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 ^2 K2 V0 D  N7 F) H* q2 i5 f        -1
. S- }8 b3 T3 @  n3 t* A/ V};( G1 I, a# I" Y8 R
( {& g7 z) V0 }& B+ o
static struct gpio_led da850_evm_tl_leds[] = {% w! g8 t2 z) e! t0 n3 }
        {) p* G* y, y. P2 V) S! K9 T
                .active_low = 0,
/ `( b" Q( ]" r. ]) B                .gpio = DA850_USER_LED0,
5 k7 F8 x. ~- \6 h4 I                .name = "user_led0",' J+ b; i7 N( ?# Q
                .default_trigger = "default-on",
* d/ J5 b" {' P1 O        },4 B4 k6 X  h4 z- F/ I# }
        {
+ K" O. r* b$ L2 }& k$ @' g2 e                .active_low = 0,
" }. o" |0 e- k* M8 n$ B7 f                .gpio = DA850_USER_LED1,( z3 c0 [4 T7 S- P5 w
                .name = "user_led1",
3 C% z& L; u' z$ U' N6 v                .default_trigger = "default-on",
" J! b( o4 j: k( v2 G" n        }," H8 c& J, ]+ F" q) u+ j6 ^6 _
        {
2 M2 I9 z- j2 `7 ?4 O                .active_low = 0,) b3 Q, \: ?1 |" D" R* j3 ]2 u# R
                .gpio = DA850_USER_LED2,
/ H3 @1 J& Z1 c  \                .name = "user_led2",
& n; e) V" a# [2 q& Q                .default_trigger = "default-on",
) D  ]1 i! d3 T* R' F        },0 U( W/ g% k, b: q3 H
        {
* w- V, m# `+ O" _" z- h% `                .active_low = 0,
! _  X2 u: j) E: f- F                .gpio = DA850_USER_LED3,
7 F3 c; {" U9 n2 Q& {0 R6 {- b                .name = "user_led3",. Y% W6 t  J. G1 g
                .default_trigger = "default-on",
5 U7 M1 j7 R! m* V. ?! Q0 j: K        },5 [: K1 l% f* Y% q. y: t
};
( j- D4 Z+ [' B7 g# }1 v" }6 ]  w
5 O# p, P0 L* {! p# {static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" {; M- h( m# N" c3 J; I/ }& m& i        .leds = da850_evm_tl_leds,
# r/ ^( b1 G  Z& _: U# X        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* l5 \& O; \; R6 Y$ I" S; J};. N# e% N% t# J; u5 }

8 w2 k/ {) L# A; R, u/ S. [static void led_dev_release(struct device *dev)* A# U8 D! Z$ S' V9 W8 l) l  H5 w
{
5 t4 V0 |+ e$ {! D};
1 Y; Z; u; {+ o3 w+ [4 t
1 c& f  q0 {' O5 a6 v' Ustatic struct platform_device da850_evm_tl_leds_device = {: m. ]) r% o; o! T& k
        .name                = "leds-gpio",
9 O3 O- }  i, Z/ i- f( \6 {        .id                = 1,2 q/ t) `% ~- z% q
        .dev = {. N) H2 h/ z2 P+ ?/ n- b( Q, W
                .platform_data = &da850_evm_tl_leds_pdata,
! e9 X$ M( M4 t" i! L( m                .release = led_dev_release,
% s- y9 r  Q* z' P$ Z' ?  n* ^        }
2 C3 a& i5 L/ U5 j1 b};6 f; w$ A" B# \# p* h0 Q; J
" C; C0 C$ z! R" R. p
static int __init led_platform_init(void)( j6 Z/ i& \9 U$ F
{
. D' o8 H. Z& |5 M- r* y. D        int ret;
3 r% V5 O1 V' z$ g* g#if 0
, {2 ~% W! R# q5 _+ A8 q2 M# D. c  ^        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 Y. A- y6 F) [9 I5 B        if (ret)
* A& P9 h( b9 I7 g                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ [. `5 T$ O( k$ M                                "%d\n", ret);
4 m  x8 Z+ o& L#endif
) q, L5 o& L4 L+ m& e$ p        ret = platform_device_register(&da850_evm_tl_leds_device);. }9 x/ J( p8 E- I9 H6 F
        if (ret)/ Q- Z( ~$ W: t" n3 @
                pr_warning("Could not register som GPIO expander LEDS");
) Z/ L4 v0 N1 n        else; X- o$ W1 n+ O1 f5 c
                printk(KERN_INFO "LED register sucessful!\n");( X+ ?9 p& b& y: T5 s# S! J

; f" y" l8 V- }! h) U        return ret;
- ?# k+ j: F" D" _; Q2 ~9 I}
/ u3 C; U" {( O( l
* R% C* V- S! \$ b  istatic void __exit led_platform_exit(void)
" u1 ~6 }# S+ K- p/ j{
) {& c- S/ i) x4 [        platform_device_unregister(&da850_evm_tl_leds_device);/ a; `- ]& }& g* M- m& p8 [

& u1 d% i7 x7 ]2 `6 U        printk(KERN_INFO "LED unregister!\n");! F: i3 k5 j! w
}
# `* r/ [4 A+ F8 ~* H6 b! R+ p; c& x9 t# D7 \+ t
module_init(led_platform_init);
" S) P6 P, I# P: ^# P4 Amodule_exit(led_platform_exit);0 y1 W# n0 |" J9 c) w  C* M
! D: L1 x. b3 a2 [# {
MODULE_DESCRIPTION("Led platform driver");
" A- x8 D6 u* k9 M+ H, I$ vMODULE_AUTHOR("Tronlong");
. x( x1 z4 M0 o3 I+ BMODULE_LICENSE("GPL");, ^" N6 s4 A/ J) r% b! ]; @

, ~8 a3 o( Z0 I4 x) r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-9-12 17:12 , Processed in 0.048092 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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