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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。: t$ `# ?) ~8 p* f. `/ @
#include <linux/init.h>
& @4 ]1 z, r# h#include <linux/module.h>
; y' e% r9 P$ x: p/ r6 a: H" h#include <linux/kernel.h>
  Z' J" x3 y; A: R8 |  k, A& P# Z6 @+ |#include <linux/types.h>
- n9 ^* [; s, m! J- ~6 t0 e6 t( {#include <linux/gpio.h>' @. E/ g) a. Q, \9 H  J! ^' Z! B
#include <linux/leds.h>
' S: h& i5 {( B1 ?; |4 [#include <linux/platform_device.h>6 m5 U6 @, ~% c1 a( v4 R# Y, {

& X% ?3 q3 E! r$ K#include <asm/mach-types.h>
+ H! n! Z1 w9 B  ]4 W4 Y3 N- G#include <asm/mach/arch.h>1 D/ g$ q/ F) e4 t- E! G
#include <mach/da8xx.h>2 s  A, a0 E" l! [
#include <mach/mux.h>
- ^- F# p) R! A; l8 G/ u& q5 Q- _! q8 i; u1 b
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: {4 t* Q: g  J+ [#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; Q$ Z* c9 i# S% D8 y) s#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
. q. g9 M! D: j5 d0 T/ s$ }5 x#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 m3 z) \* I0 T# _2 d! M- q" ~- s! j1 \6 D- K6 E( _
/* assign the tl som board LED-GPIOs*/+ D# a6 K! G# {' e: N
static const short da850_evm_tl_user_led_pins[] = {" b  _! k" S* ^* Y7 h
        /* These pins are definition at <mach/mux.h> file */
% p$ O0 S7 s3 |" c0 a! V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 Z/ Z7 `! Y) ]        -1: S- @! ~9 w! a7 ~/ C
};
6 E5 l( C; c. e: F6 x) c8 Z' L. h/ j5 ~* j. J
static struct gpio_led da850_evm_tl_leds[] = {
! {0 }5 S6 s8 M1 A, S2 k- ?8 p+ }( Z        {- x, P6 {0 y/ [; f: f/ O
                .active_low = 0,. y! E3 y5 K4 J+ F2 Z
                .gpio = DA850_USER_LED0,
1 I- n. C) ^2 x! i* r' e$ Z( q                .name = "user_led0",
7 M. E4 Y. [$ v                .default_trigger = "default-on",
  T7 O2 v5 }+ @7 h        },
  J/ C% u& P& m: G; a& g+ T        {
+ |; H, H4 c! ^5 v5 \' P( ~! F% G; W2 X                .active_low = 0,
& l- U$ ?1 D! _1 M                .gpio = DA850_USER_LED1,: J9 _8 G6 b7 s3 ]# k" A
                .name = "user_led1",$ T/ [) h6 L: p
                .default_trigger = "default-on",4 J0 t% b/ r, r# Q2 d. s7 P
        },0 a4 U9 I6 @8 y" W4 K
        {
: k# Z( S: |# H                .active_low = 0,; c4 Y2 ?  {- x
                .gpio = DA850_USER_LED2,
+ P4 {2 L4 p, F3 H                .name = "user_led2",7 y" ]- s; _' |
                .default_trigger = "default-on",: \$ [; d; T, T
        },- R+ e0 ^: d5 s  \+ Z  a# ^& X' L; E
        {
8 O7 N% W! r) M: c/ |& n) K; G+ e                .active_low = 0,, Y& A$ W. t; i4 J: Z6 I' Y
                .gpio = DA850_USER_LED3,
$ M; P+ n5 q! a; b2 n" Z5 s                .name = "user_led3",
# O$ g8 {. |$ v/ R/ d+ K8 C                .default_trigger = "default-on",. n: y$ z* j/ q2 o4 ?
        },9 i6 p/ L/ {, @: e
};
2 ?' t+ t# I' r% d) s1 e, c
/ p" d7 f# k: H; }" ^* m9 F) zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: `4 Q, X& C7 l( ?) ~( C        .leds = da850_evm_tl_leds,
0 {$ L" a, R/ e$ A1 p; m0 M        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# J, ^% c% [- V
};
# U" J: r6 Z1 R  b) w$ L$ Z. |& {+ h1 h6 I5 u$ ]" F
static void led_dev_release(struct device *dev)
% q) f  W+ A. D& G+ B- v{8 w/ k! d% {! h1 S1 A" m, l, U  f% L
};' E8 L) H& p, v* f3 n! H# M
* g* E- P5 ]: O% }6 v
static struct platform_device da850_evm_tl_leds_device = {+ y# e! q3 S# |' S1 C5 D: b9 D5 m, T: `
        .name                = "leds-gpio",
  f4 _8 s& B: Q# X4 d        .id                = 1,
, n+ M" M& \: ^1 C8 S        .dev = {
5 Y& ^! Y- Q+ d# U) C6 N3 i5 ^- q. |                .platform_data = &da850_evm_tl_leds_pdata,% d$ n" j; j. g( f: p8 M; Y/ z
                .release = led_dev_release,
2 Q- R3 _$ d% [* }  P! U5 u2 p        }
6 Z' e: ?3 B. Q};
+ T! |* e5 w1 v" P! i
( P, B: \8 S" @6 _/ \2 S* wstatic int __init led_platform_init(void)
1 w& _) V1 N5 P9 K/ S4 Y{; j6 H6 k3 A: X  f7 a  d
        int ret;
2 d9 S, _) z1 Z2 P  f#if 0
$ F) e7 K3 Z& l- E  U        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 o" h& [! T* O$ Q
        if (ret)! R# r; E, w% A# E" R; @5 n
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 a7 h6 D( a. `4 E2 f; U  p
                                "%d\n", ret);; Y' v3 V/ U- C" c8 K
#endif
3 _- C1 _6 q3 s5 W" N& K8 h9 e        ret = platform_device_register(&da850_evm_tl_leds_device);
% Q9 i1 K0 e# L+ ?$ |' q9 I/ t        if (ret)
5 a" m; v0 D. ]# w+ ]                pr_warning("Could not register som GPIO expander LEDS");% ~5 [. u6 N  R- @) R' a% I
        else/ s3 P4 \% X, Y2 j
                printk(KERN_INFO "LED register sucessful!\n");! N- P" E+ P2 ^+ W$ B; D  ?
! M2 l+ y9 d7 n5 v1 G+ }
        return ret;
5 ?& w! B) v7 {  U; Y2 G3 I}0 U: W4 E3 o9 B0 c8 u- `1 Y7 T
7 x1 ?4 A' ~, `- q: J
static void __exit led_platform_exit(void)
3 L5 x; w: B, @% S' s& ]{
+ g/ e7 v9 n' |+ \" Y        platform_device_unregister(&da850_evm_tl_leds_device);  c8 }( ]5 T- {; V
& P  g0 R* G. t
        printk(KERN_INFO "LED unregister!\n");  o6 `- L# q* o* Z4 v6 P
}
3 B/ r* A; v$ z1 X
. A0 u5 ]! y/ q* k' u1 B) smodule_init(led_platform_init);
5 D, j8 z5 @9 F, pmodule_exit(led_platform_exit);
+ A. Q) b' n# g
( g+ e. c# I: HMODULE_DESCRIPTION("Led platform driver");
' v" N5 _1 }! n/ Z: C$ q( n! @MODULE_AUTHOR("Tronlong");4 D2 L" R2 M" ~: |8 y3 N
MODULE_LICENSE("GPL");
  ~# G) {0 q4 z3 o. l& l0 |6 h1 [7 X; l! x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-23 10:10 , Processed in 0.037977 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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