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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 A$ |. f" I6 T5 c& ^* u
#include <linux/init.h>% a% |- _; \3 y+ m+ u
#include <linux/module.h>0 y3 D& \; L5 c2 k6 Q+ n# M$ u& z, S
#include <linux/kernel.h>
9 V. q0 W) W) i/ D0 w#include <linux/types.h>
( M5 \$ E2 R; P6 e3 ^7 l0 G, H1 U#include <linux/gpio.h>
; ^1 h, v: M4 L+ W: l* A#include <linux/leds.h>! b+ S# G6 v9 O; O1 x) J6 o
#include <linux/platform_device.h>5 E2 j  Q$ Y6 J/ A3 c$ p8 B

0 T" }5 m% H! [! B#include <asm/mach-types.h>5 Y& l: z9 ~5 Q+ m
#include <asm/mach/arch.h>& G6 n  n7 C7 O. @8 _% W, B
#include <mach/da8xx.h>
8 g5 h2 F; J/ T: ?#include <mach/mux.h>
9 \2 @1 O1 F" b( i% H' T) `1 l2 F9 J8 F0 S& u" {3 {
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# E3 Q  o; s! E: E) C. l#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- Y0 r8 H2 Y) K. n0 r8 T#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 e6 N* e4 v1 R, z2 A
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 I. A: ~6 g0 a( Q
8 B8 `& {' q* F! W$ j* p  r* L/* assign the tl som board LED-GPIOs*/# g( ]( _! x6 q/ _4 G, d
static const short da850_evm_tl_user_led_pins[] = {% l/ A2 Q" U/ O
        /* These pins are definition at <mach/mux.h> file */! O% r0 V. e! v5 E% R! U$ v) I* q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 r! e& M8 ~. c2 m" c0 [4 R        -1
+ w4 V: o( r* D* b. g};
: u- V4 i9 H: @. i# l- a0 W9 Q% V/ x3 T7 r
static struct gpio_led da850_evm_tl_leds[] = {) F: |7 n$ p1 F, W2 \/ v' t
        {- a- ^  Q9 f6 ?# q9 Y) M5 G
                .active_low = 0,
* S' C4 A9 }) e, V0 B' g0 g                .gpio = DA850_USER_LED0,
2 n( W+ x, J; N2 I2 u/ V( A- O                .name = "user_led0",, v' G9 I# u9 b+ B
                .default_trigger = "default-on",
0 ]6 r" c0 |8 V4 S- g" [# c% ~        },- ^" Q0 ?9 d# U  D( m$ N
        {
9 p% j% j  }/ ^, x. B2 N, e                .active_low = 0,. H! m" v1 V) K9 J% H2 u2 x3 X
                .gpio = DA850_USER_LED1," f& L, ]  {1 v; @( @$ S
                .name = "user_led1",
5 S: G* x- X' [" S* b. {                .default_trigger = "default-on",
2 F' Q) k$ \! D8 G/ s' P, N2 |) H        },
: m' W, l7 r+ x8 \        {' ~- r$ C; ]: ~
                .active_low = 0,2 E  W  ]2 a$ V8 N; J- @
                .gpio = DA850_USER_LED2,
6 \  E. ~, q' L. \6 X. k! o: F/ l  T/ Q                .name = "user_led2",8 f' N9 ^- j2 o% S
                .default_trigger = "default-on",- A; x, g6 y( E
        },
% F; x: _, F4 T1 D        {
; [% T3 ~- w' R8 W                .active_low = 0,# [* F( B7 r$ G8 j5 a
                .gpio = DA850_USER_LED3,
7 C" X8 N! Z$ b) z, C* f: h                .name = "user_led3",4 |7 m4 Q; W& {
                .default_trigger = "default-on",
5 A5 s$ _' p; B* z3 `/ M        },
  _# D- J5 p/ n; x4 k  k7 r: E};
3 I6 S: x  F/ E: d7 H
% k2 q- Q2 O" u6 j" v! Y. F/ ?static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 Y0 F9 ~' o( y1 R$ C3 f        .leds = da850_evm_tl_leds,
8 |" e* H7 j+ Z) s        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( n  u/ V* ]4 E0 ^4 v4 d* \};
: r7 p. f9 m8 W* n/ X! @4 H" Q! m. `' E$ N4 f( {4 I; x" p2 z% o
static void led_dev_release(struct device *dev); H* F4 m3 \$ `! Z3 s- l( \; Q9 Z# E. {
{% a' ?; O: B( u1 e5 h' r
};6 a4 h+ D0 e2 U/ W; _/ Z3 T

- n7 E+ V% o: }5 g( @* r  i6 \" wstatic struct platform_device da850_evm_tl_leds_device = {  v4 r+ J. C9 C* A3 w3 j
        .name                = "leds-gpio",) A0 t2 f/ S; {8 h) ]% L# f
        .id                = 1,
" U, U7 A  y# }5 Q        .dev = {( r5 ?/ a$ f+ T3 l
                .platform_data = &da850_evm_tl_leds_pdata,* d' \' e' k4 T% m) o
                .release = led_dev_release,
5 Y) m1 `3 p& ^% X        }
0 Q" g) s; Q9 w};. |; R/ h$ _+ v8 n8 g

2 G. s/ N0 C' l5 b( rstatic int __init led_platform_init(void)% h+ A& t0 b6 \# Y3 L
{
8 O# g0 \2 U8 g/ n# p        int ret;
" j6 L6 g$ f2 {+ [0 C  i$ `9 e#if 01 Q3 X4 _$ s9 I3 _9 @; K2 {
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  |" \* N+ V0 B$ j  O% C        if (ret)
2 M  p* T. z) I                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ @4 `/ C1 C; ~) v7 D
                                "%d\n", ret);
* f" `2 P. {0 i3 A9 x( c$ U/ X. Z3 @#endif3 N, e7 |5 J; n0 J2 o
        ret = platform_device_register(&da850_evm_tl_leds_device);; L9 H; Y+ u- s
        if (ret)9 e, h* W2 T& v/ `3 x: p
                pr_warning("Could not register som GPIO expander LEDS");
" R  o) {; p( x9 W" s! L        else5 H$ Z0 c- N) Q
                printk(KERN_INFO "LED register sucessful!\n");
+ H$ j1 d; B/ k) X, ^; M" R9 w' T. d. L
        return ret;; J! ~0 ~/ B( j& Z; b0 V$ u( X
}% [3 N% q& _9 u; r

. B& E  D4 d, Q2 _! ^. Ustatic void __exit led_platform_exit(void)
5 c2 d+ c/ T; j- ?2 R{% k4 B, a0 i$ q' R  @
        platform_device_unregister(&da850_evm_tl_leds_device);5 F% s9 e, G" ?1 e7 r

0 d& ?$ p; J- U- G) B& Y        printk(KERN_INFO "LED unregister!\n");/ ~: `4 a6 a/ M6 S4 O7 y0 J
}
7 S9 a, I, u2 B( U7 R3 B) Z
. W% n9 a  n; |* V4 ?' Fmodule_init(led_platform_init);1 g0 g/ v: {  A$ L! Z# d
module_exit(led_platform_exit);
& s" A# @# v. {4 O- d9 z  l
1 {- h* M% G! [  f2 G4 Z* {MODULE_DESCRIPTION("Led platform driver");
/ P! ^) C8 ?+ V3 e5 p( Y, kMODULE_AUTHOR("Tronlong");
' ^) G5 N9 x7 V$ O( z- P! LMODULE_LICENSE("GPL");
9 B4 \; \' E. @7 ?: k* D
1 p1 |( ^. ^3 d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-4 09:37 , Processed in 0.040925 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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