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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 `: u* h  @! D& k0 @#include <linux/init.h>4 l2 W* ?, u1 u: U
#include <linux/module.h>- K. b5 W: a# g) r2 j1 e
#include <linux/kernel.h>6 y0 V( E8 f1 i/ G' m; @
#include <linux/types.h>" w% w% i: \; e6 i2 \
#include <linux/gpio.h>
! b1 O) P. A3 V8 _#include <linux/leds.h>
: d1 e8 U" F9 v#include <linux/platform_device.h>
- g2 g* A* ^+ u* F
9 w; L  Q  \# u% `#include <asm/mach-types.h>
% X8 v/ _- H3 E  {" L0 W#include <asm/mach/arch.h>/ z; R1 Z7 S5 X9 w
#include <mach/da8xx.h>
* R& {4 r1 C: G# e9 s#include <mach/mux.h>! ?9 c2 q5 ]5 P# N! T# Z7 b

: W( w% M0 o1 B6 e#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 w7 ]+ X& a- v' A( F6 M6 o2 f
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' z2 R7 b6 ~$ q  N; E#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 i) S! P6 a7 Z+ j/ k0 k#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 z8 d  x1 q+ G" c) n9 e
# J; j  U+ [, x) W  u. K/* assign the tl som board LED-GPIOs*// y: B; Q( v( A7 a" J( T/ h5 L
static const short da850_evm_tl_user_led_pins[] = {
5 l2 d) e! b5 v8 V" _, u' N5 k        /* These pins are definition at <mach/mux.h> file */
# u3 i8 R8 f: z' j' g; F5 @/ f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 m  Y* k% G3 U. Q- p- t        -1
# x6 g- b) d: d5 @};# v6 u1 Z8 Y6 H  A/ J% |3 u

7 q; o0 s. Y: i+ o" W' z7 R% k0 }static struct gpio_led da850_evm_tl_leds[] = {9 q9 e- f- Y* d% F5 r
        {
% T! Y' x8 ]/ @1 u+ ]( |                .active_low = 0,
  g' k7 V2 a/ A. d! R8 Z                .gpio = DA850_USER_LED0,6 J  m* t# R5 X0 b+ [8 x
                .name = "user_led0",' a1 r% b  c; c3 L% d3 I  }
                .default_trigger = "default-on",% X2 P4 m% B1 {0 ?
        },. t' O; P% S9 X6 P5 g1 k) R
        {
2 a/ I* R( f: S1 e" B" u+ `                .active_low = 0,# i4 v! f) b3 D2 Q2 X( Z+ b
                .gpio = DA850_USER_LED1,
; m/ U, S, Y6 v; ]. F0 B! u, r- M                .name = "user_led1",5 {% g* J2 g- n+ m; j
                .default_trigger = "default-on",/ L: `& {7 v! V" Z+ l+ b
        },! H- I! u: F) S$ B% e8 S
        {, M' x, x# B8 n: l* s, J3 z
                .active_low = 0,4 t) L7 ^' l) v0 N
                .gpio = DA850_USER_LED2,
, U4 h" z2 _/ J1 h                .name = "user_led2",$ h) e# O7 T+ R+ U" `& j3 I
                .default_trigger = "default-on",, W$ V8 ]; O+ z# X& \
        },
$ l. p, |1 E' b% \) P7 y7 R        {3 `/ V- g! P, g  b( \2 b
                .active_low = 0,, {4 B  X2 Q/ a# X) m
                .gpio = DA850_USER_LED3,0 x' C2 q  G$ g$ C
                .name = "user_led3",2 G( p) y7 j) ^# i  g
                .default_trigger = "default-on",6 C( V+ G' J7 \, q
        },
6 C" D* j( G. }# h};
" G. M' N7 p9 T8 l. ?+ \8 F! @8 `6 H- M' }9 `1 q3 Y8 G! a& A
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( i, I0 I4 ]- x2 x2 B  l; q        .leds = da850_evm_tl_leds,
* p+ a9 B8 p+ R* e4 P! X2 t2 j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," C6 X3 H$ K6 ~0 z! U0 G2 U5 K" x: d
};' T9 H8 H- m$ E

: `+ k9 _3 [; s" O" K4 p, M/ h  Lstatic void led_dev_release(struct device *dev)
5 Q- ]" C$ W8 K8 _{
' |3 n3 ^& [) N0 Y% }};
; T# p2 e3 e% D9 R' U; K( E& P. G6 {& C
static struct platform_device da850_evm_tl_leds_device = {7 D: X( D) E- A0 Z. s$ {1 H
        .name                = "leds-gpio",. z) {. L& M& E) P
        .id                = 1,8 {* F: {- g. W; u. `4 {+ Q
        .dev = {, `" j4 f& X& P  \  r
                .platform_data = &da850_evm_tl_leds_pdata,
+ t0 g$ y* B9 [# ~; d$ i                .release = led_dev_release,- N8 B9 j# J. v- s  K1 x
        }
. l7 _" J4 r' T( ~" e};, X: X- q: \3 Z% X* u- A

3 N0 `! W* I7 [% fstatic int __init led_platform_init(void)8 X" v  N: s( M
{
8 M% z. d1 U  J        int ret;& A1 g+ P3 F" t
#if 0( ^! L- }# {4 K+ g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 S4 ^- P! R$ T% Q0 s, \        if (ret)* g/ m" i% V0 m3 n
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 D. e2 ]3 u' S; d% F
                                "%d\n", ret);. X  a3 d4 Z0 Y  g: Q1 y
#endif' D# h) t( B5 l1 j, Y! S
        ret = platform_device_register(&da850_evm_tl_leds_device);
/ Q+ X/ L) [$ x: h0 e        if (ret)
' y- T1 m0 R6 ]% R* Q                pr_warning("Could not register som GPIO expander LEDS");2 p7 @0 H3 s4 r
        else
# n7 p; L& K. V  z" v                printk(KERN_INFO "LED register sucessful!\n");
* k& E0 t- e5 _( [* E0 {: E; V- x% K) D# ?* X. m; }4 W% E
        return ret;$ H+ s. n# ^; j
}* S0 E. y  t; z# g' t
6 f1 u, o# n* H( M
static void __exit led_platform_exit(void)7 a5 T5 N7 ]6 g. F! K) E
{1 z" x: ]8 O) R+ y2 H
        platform_device_unregister(&da850_evm_tl_leds_device);" g) S- X$ Z/ x5 ?- y" `! X& i1 o
1 I3 }0 P! t9 L( b/ s
        printk(KERN_INFO "LED unregister!\n");- i3 `6 j& }# U6 R
}
( I! f+ s& U0 t" d
+ a2 e# m6 G4 f. r! S+ [9 q$ rmodule_init(led_platform_init);
8 f9 {( I- f  ^, t# Gmodule_exit(led_platform_exit);
! E  r0 N* ^1 u, }( F/ t- K# U# S7 X0 o, a& w, g& u. U2 K
MODULE_DESCRIPTION("Led platform driver");
9 H! c/ c* ]( ^0 CMODULE_AUTHOR("Tronlong");
  U  S6 v% Q) K# ?- ~+ b2 l  O  PMODULE_LICENSE("GPL");0 N2 _3 e  s. @1 V
/ B$ G& |5 n) K  H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 12:20 , Processed in 0.038022 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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