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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 z3 X! X" p- X6 G  Y; M: F. f( k#include <linux/init.h>" u8 y( E$ H/ L, q  N: Y7 p+ O# i3 G
#include <linux/module.h>  ?1 J9 I) Z$ x/ T. y5 i( k) G
#include <linux/kernel.h>
4 p  t4 T4 P# K& H#include <linux/types.h>$ n0 i5 S/ X- P
#include <linux/gpio.h>4 ?5 Z% D# `' p; d' y, @4 d
#include <linux/leds.h>+ D4 w7 C  G5 B8 u
#include <linux/platform_device.h>
# x5 V. L" W4 X  Z, ]
3 u- ~- W4 N! T2 j#include <asm/mach-types.h>" d: |7 K' M& ~- L# i3 }+ z' z7 p/ D9 N
#include <asm/mach/arch.h>
' `: p# ]1 ^1 `. p' g/ c2 J#include <mach/da8xx.h>; {% O/ O- q3 V# t
#include <mach/mux.h>. x# x) R: H) [; h8 g5 ?" f) `

5 q$ W- ]. w/ s* q  A#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 V% J) M8 [+ c  D
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ v2 [; C% _1 i/ ~- z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 G, M7 f, e( A' N7 {8 P#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% T, b5 Z  |, n" y; O+ ~

. ]/ g8 R8 a* u: @: P8 P/* assign the tl som board LED-GPIOs*/# V6 y* l9 ]; l2 D# Z. E9 Q
static const short da850_evm_tl_user_led_pins[] = {4 a0 z  r8 c/ o* f& r  n$ v7 {
        /* These pins are definition at <mach/mux.h> file */4 e6 _# \  G  M4 s6 J& N
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 T& L. t! J3 r
        -1" t( b  p; O% I. X4 k1 t
};
) P0 u. \. t! Q  f; f+ {' b. t9 d4 J4 }4 _0 _
static struct gpio_led da850_evm_tl_leds[] = {0 V1 |% R( S. T: w0 i" d% u, ]) {
        {+ S1 s$ W4 o5 Q) I; A# R7 N
                .active_low = 0,
& f1 p- S; |, b! ]  Y                .gpio = DA850_USER_LED0,, B) v- Z- q. W& O0 R  s
                .name = "user_led0",
3 ?, Y( b5 L5 T6 H                .default_trigger = "default-on",9 ^/ T1 x1 o  m; W3 \; s
        },* h" y; s/ l/ H' C) |
        {
" l; T; k3 L3 j0 h6 m* k" f# v                .active_low = 0,
5 w9 o: ~! T( g2 @- o                .gpio = DA850_USER_LED1,
+ x1 H, S/ `1 R9 R, |0 W6 z. N) S) U                .name = "user_led1",& ~  v/ S% s* `- D
                .default_trigger = "default-on",
! H* Z( s4 u, _9 _) d+ X        },, M( y+ I+ X6 L& M$ `$ C1 x
        {& F3 h* T& v, |) ?* V; P
                .active_low = 0,7 b7 x- l) `2 H+ T( n% f
                .gpio = DA850_USER_LED2,3 Q/ a" M& l* ?8 G% X: `* f
                .name = "user_led2",
. |3 O: c. i# X. g. S                .default_trigger = "default-on",) ?* w5 T5 ]/ O4 j5 w3 O
        },
  C9 t/ D# L! z: n" [& \        {" U7 j6 G% E$ P( b, ]3 ?& O6 L0 s3 j
                .active_low = 0,3 _: s6 q  D5 q
                .gpio = DA850_USER_LED3,
! ]$ {; a: p% A' B! O2 y  p4 n% A                .name = "user_led3",8 D9 q: i; E0 Y. |4 |/ h# S7 P7 W) Y
                .default_trigger = "default-on",
+ M# x& q6 [, y  N        },
: V! `% [& J2 j0 o9 J+ s# c};& h, ~0 `  I( `) V' @# j
' W8 J/ a9 w2 N% `/ N5 @5 {
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 m  S% H& O, X$ n        .leds = da850_evm_tl_leds,
+ h/ h" s8 }- d- `, B. z- o& G        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' z" j3 u* R2 y
};3 c) T2 J# V, W) G; F! ]

! K  w6 Q( \3 P( pstatic void led_dev_release(struct device *dev)  ]$ a- [) Y6 ]% d- H
{
0 S( p: F; y3 H- K2 u};
& b0 Q) M. A3 E5 U% o* g6 D8 O
  w- I& g; P3 ~2 f. k' Q( nstatic struct platform_device da850_evm_tl_leds_device = {; A# B( _! E" h7 Z& G) A6 v5 s6 `, X
        .name                = "leds-gpio",
$ B1 g& ]6 ?& \( ^        .id                = 1,0 Z7 J* e, X, P+ K
        .dev = {
+ F6 z- I8 @, U9 P                .platform_data = &da850_evm_tl_leds_pdata,& D6 X% {) P% n$ J. v" z
                .release = led_dev_release,7 z1 C* l% V2 B  T1 ~" o! b( K
        }2 L! J* N, U' t  ?. B' N) U
};" I4 Y( p5 d! g2 f
3 \* [& v% k! k
static int __init led_platform_init(void)
: A6 \1 j" f% T' W{
% O, N& {# ~- Y# P        int ret;3 D- ?/ R  [8 l
#if 0
1 h! \2 q" O9 [7 i/ v: t( H/ M        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 C  I, M) H6 n4 g' Y$ n        if (ret)
. F* N3 \3 n9 B0 V. B$ |5 l                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( s* s' k0 ]$ q                                "%d\n", ret);
, e- `& B$ a3 ~- B6 L! v#endif
5 N* q, V4 R' H% z& C& L        ret = platform_device_register(&da850_evm_tl_leds_device);
& L+ |+ t# E4 @4 s' |- R/ T2 S        if (ret)6 }# R/ }' s3 [; e; u; g8 x: E: V2 D' Q" M
                pr_warning("Could not register som GPIO expander LEDS");
- Q! O% f1 T$ N( m: h& Q3 j3 S  C6 E        else
. B# J) g7 R) F. m$ E0 V0 x: u+ d) }                printk(KERN_INFO "LED register sucessful!\n");3 \9 n% M0 E6 T. ~7 I9 w5 t7 r5 N5 }* q/ }

3 Z, u0 n4 [4 E: G7 O0 t- D1 n% D( B        return ret;
+ {; s) B1 N% T7 \9 z}
0 {% j7 H& }1 `/ f4 Z1 X- h2 |7 v/ j& K
static void __exit led_platform_exit(void)
/ F" X4 {! y- o  o- R/ O{; c1 D# j! I( N' A
        platform_device_unregister(&da850_evm_tl_leds_device);
2 A% T! j. {. m( m/ I# @
; \) S- |2 X8 }3 J' Z9 S: T        printk(KERN_INFO "LED unregister!\n");
# F" }+ i( `# A) a4 ]}, T" D: h) w+ `0 K$ |6 N) p" h

0 @% F2 x* I/ Z7 ], c, ?module_init(led_platform_init);
' M) [: f: ~. |: emodule_exit(led_platform_exit);* u$ B  b& c' ?! K4 V4 F
) R& v8 P. x2 y
MODULE_DESCRIPTION("Led platform driver");$ B4 |8 A6 f2 m, H# b+ J7 x
MODULE_AUTHOR("Tronlong");
. J) @1 w2 g2 e- f8 ]% v. \MODULE_LICENSE("GPL");
: G2 A" T& t. v; M2 X7 m0 g
. i- h- E: \( z7 G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-16 21:02 , Processed in 0.039066 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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