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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 ~; b: ?5 x# q% P- _#include <linux/init.h>
7 L, @# A" t( ~* v; V0 N  Y1 Q) A#include <linux/module.h>6 v8 y5 {) s  B: m
#include <linux/kernel.h># H& X$ [- i5 g- m% J
#include <linux/types.h>! A  {! |' {# V  \1 C
#include <linux/gpio.h>' z9 V* z3 S5 i. Q6 Y2 q
#include <linux/leds.h>
) j7 V& M- p; p1 T, {# L#include <linux/platform_device.h>
/ M, q9 A) F" F+ K2 p0 d9 H7 h$ `) k( V7 D9 P5 e7 t6 l) c
#include <asm/mach-types.h>7 \; \, N' i8 g* ]
#include <asm/mach/arch.h>
  x9 {" v2 a# \" q0 v#include <mach/da8xx.h>
/ w$ _. }. w7 c; L8 r3 I' r#include <mach/mux.h>7 @2 }: R3 e0 q* w

3 a8 j1 c; I) G, K#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 C4 @0 f! M* X) I0 J7 c
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ ^+ r6 \, Y1 V#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ u$ [- y7 M3 @# ?#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  w" R- J% T- [8 _- b& a" }

" i  J8 {) @/ P* h/* assign the tl som board LED-GPIOs*/
3 H9 h$ ?- W$ H+ h# @: ?+ C$ Mstatic const short da850_evm_tl_user_led_pins[] = {. G# C" Z6 \0 [' Q; W) g( e
        /* These pins are definition at <mach/mux.h> file *// d3 l/ g, W7 f" _1 s  ?
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) j0 P; S6 Q  N        -1
3 p! X* x' s3 K% }4 g};% u2 O2 G& q, v/ Q

# I9 M# P( p4 s2 Q8 f7 P- }static struct gpio_led da850_evm_tl_leds[] = {
5 K& k) h  z7 x        {' t6 j9 C  |7 Z( D; A
                .active_low = 0,* H4 S. D/ ?; V
                .gpio = DA850_USER_LED0,
0 i" |) t7 p' X7 L% Q                .name = "user_led0",
2 c! @8 Z% u  F% o. y' y                .default_trigger = "default-on",' U& p- u; |# U" E( j
        },. c; d4 H" D! [1 d) W. Q% ^9 t8 F
        {$ l6 h- W6 o  S9 V) |2 H- T4 t
                .active_low = 0,
1 K5 x! `3 V9 _$ C$ \                .gpio = DA850_USER_LED1,
+ n0 K$ ]( l4 M# q) P                .name = "user_led1",
/ N! e* n7 I: [) w" ]3 W+ W* G                .default_trigger = "default-on",% q- |( B; B9 p; ?1 _4 F
        },4 Y$ `8 a( G6 o8 _% c
        {
2 c. V( n7 B$ F  T2 j+ H                .active_low = 0," Y2 f9 a5 w1 Z( H
                .gpio = DA850_USER_LED2,+ j# U2 u" Y) ?6 U. B( J& Q. X
                .name = "user_led2",
- C% a7 Y/ s- s; |% y                .default_trigger = "default-on",
! b2 P% O* O: s3 V        },
2 r3 y" l0 B  V1 j  Z" l5 g        {
9 z  [( r7 [0 H5 t                .active_low = 0,
9 f: L, C/ A2 U+ c9 E4 N                .gpio = DA850_USER_LED3,( ~/ {* T( U( p* W0 Y. v3 F
                .name = "user_led3",
( ~, H$ p4 u* v3 `2 M& C# W1 O                .default_trigger = "default-on",
6 }7 R# j7 }& u        },
; {1 u: p7 F3 E2 W1 [' M};; M' A6 \& @& n

; z( {6 m, i# S& g, U  ~  t% ~static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. A& E: c# w8 p; W% t/ m0 r
        .leds = da850_evm_tl_leds,
  `2 q/ [) G0 I) a) s& ~' a        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# S+ \3 [' o2 I, n* a
};5 u( W# W/ m0 }- O* k
" v9 i' h0 I8 R: o6 Q2 @2 P4 V
static void led_dev_release(struct device *dev): G3 \+ ~# ?" b( O' O" d
{
! u6 [6 w" R  M; G, A7 j" ^0 m, d};6 l$ P% ~! R. A9 j, |

3 M6 H$ _# A, G3 |& x4 wstatic struct platform_device da850_evm_tl_leds_device = {
. L9 J  v) q+ ~% U        .name                = "leds-gpio"," y- \4 X- x* f# b- O) v, ?
        .id                = 1,# q  ~: A6 r, i+ I  g& L
        .dev = {8 W/ x0 _6 n& d) C+ \+ L
                .platform_data = &da850_evm_tl_leds_pdata,
. M3 M+ l7 G- N* G( X8 P3 I& u7 \+ P                .release = led_dev_release,
/ Z# t" o# i; v/ f: R& d3 c        }
, r0 z/ q. ]' ~" e: ^};- w& G0 T; C9 t, C; S3 Y/ s
" p+ x' P$ i4 u6 E, X5 r7 O6 B) p
static int __init led_platform_init(void)
6 w6 t. l8 w$ O" H/ x{
! ]# s8 Z3 s6 w$ |        int ret;9 Z- R$ C; I3 u: S; v3 Z
#if 0! G4 k8 ?  Y$ j+ D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! G6 K0 {7 ]2 |9 G( K' Z5 }+ O        if (ret)8 O3 `/ o3 A+ l; h
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ y4 c+ J& `+ N' N* R
                                "%d\n", ret);
3 z: B9 s$ v& n! d# o#endif
, a: W4 g& Z: E& i) B9 C6 o6 k        ret = platform_device_register(&da850_evm_tl_leds_device);$ A1 X3 q8 F3 y( ?
        if (ret)
% ?9 D: ]# O' F" ?: z8 `                pr_warning("Could not register som GPIO expander LEDS");5 m" f) Y& [! F; `+ y
        else
* C) G6 J/ b  S! Z                printk(KERN_INFO "LED register sucessful!\n");
' D. l2 Z, s7 z0 F4 E( F4 |+ U2 p. W: V. |& b2 F! A# A
        return ret;! u- D/ p3 W" x8 _2 ^4 M! R
}
- H; O- Z$ s, M
" _) _0 m) J, ]' A, k7 astatic void __exit led_platform_exit(void)
# }6 ]0 x2 ?( ?{6 G- z/ B6 m9 f1 W1 `8 [
        platform_device_unregister(&da850_evm_tl_leds_device);% J! F: g& d% [8 G/ y, S5 p
, P+ v8 m8 t& Q
        printk(KERN_INFO "LED unregister!\n");
, ^) l2 E5 ?2 j) r6 C/ I}. L, |2 r& @. r% A
& B6 a& |" f; o& _6 p3 s! t( _: U
module_init(led_platform_init);
5 U9 Y- H. g/ X$ W% D9 Y6 |module_exit(led_platform_exit);: m0 J1 f: k+ ]& w
4 @; H' L1 t" \9 J8 D* F( l* l( i
MODULE_DESCRIPTION("Led platform driver");1 {4 [' }8 E& C! V6 n# E
MODULE_AUTHOR("Tronlong");+ v6 g$ J$ d) ^7 ]) o4 D- N% |
MODULE_LICENSE("GPL");0 t4 d4 w+ d* C6 @) \
4 G+ G+ g% {, o1 s! S  J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 11:20 , Processed in 0.043683 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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