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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 n. l: C% |- c5 Z#include <linux/init.h>
7 ?0 t9 M4 ]2 ^- ^0 p#include <linux/module.h>
4 N0 X% q5 ~; [0 u4 `4 a& m6 l. ~  v1 F#include <linux/kernel.h>. p+ y4 R; P8 \) A- b! s; s# g
#include <linux/types.h>
* K5 G- i; T5 I+ d) b$ }#include <linux/gpio.h>7 F& ~+ }4 I9 D1 `  R9 C2 C3 x
#include <linux/leds.h>/ j- f1 \7 W2 O, l6 j
#include <linux/platform_device.h>2 l  e1 d2 y8 }. C; @- W/ ]1 x2 y

  f+ R7 k% V0 |9 L& {+ F/ Z#include <asm/mach-types.h>' o+ E# R  X4 {4 G9 t) }
#include <asm/mach/arch.h>
, W3 x6 p4 Z8 O; h9 ]/ O: X9 t% d#include <mach/da8xx.h>  z( I( F& `* }: @
#include <mach/mux.h>0 r- _6 f# C6 u2 {" X8 i
" x% A( l  k' S; u1 T* {9 K, l$ L" ?1 s
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 c, V3 O% I9 k#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 A, ]6 g- b8 j1 [8 K8 c: E# @
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 O$ [0 M- U" y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" t7 Z& z: `* D

- B7 c7 o  }2 T- w' N$ z# a/* assign the tl som board LED-GPIOs*/
; r8 F7 U) |- {8 z, _static const short da850_evm_tl_user_led_pins[] = {
9 X' t  g$ f  a% {        /* These pins are definition at <mach/mux.h> file */
4 R% U8 `' W" G+ @+ [        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 U# f) y6 D( p
        -19 D; u/ k2 Z8 n. _6 {" C
};
* z+ m& Q& q# t0 {/ s8 V; b: ?; `$ P' n+ Q* X2 S9 O
static struct gpio_led da850_evm_tl_leds[] = {  {1 W5 S- n8 j/ j' k  Y$ I5 }
        {
( v5 E6 M# Z& ?; h                .active_low = 0,
* _, y2 D3 X8 q7 k- e                .gpio = DA850_USER_LED0,
* K, Z: e; U& W+ g' W6 j+ }4 I1 `                .name = "user_led0",
: W9 |3 D! u$ \" X, M7 U                .default_trigger = "default-on",
8 r3 n6 a4 X- z. d        },) y5 q$ |3 n) Z3 Q1 D
        {
3 v& z  d, a* Y$ I                .active_low = 0,8 W0 Y/ r; v6 b2 v" w! H
                .gpio = DA850_USER_LED1,
+ a! ]8 c' x& e4 C5 a+ y$ P6 M- q                .name = "user_led1",
) e0 q. m( S3 \9 Y5 ~/ n( W4 k                .default_trigger = "default-on",& o: a) |" ^: t$ T5 Q/ }5 |$ t( a  |
        },
# G4 ~$ v9 ]; ?  C# u. V. S        {
0 E. ?2 [, [) C  ]                .active_low = 0,
) I( P$ E1 u+ i. c. [9 M0 u  Q5 E+ O                .gpio = DA850_USER_LED2,
, a9 Q8 ]  a5 B% l& C4 i) R+ k                .name = "user_led2",/ F9 x  v& K% D: i+ h+ G
                .default_trigger = "default-on",
1 i! I8 _. O8 r. d        },9 A& W/ a* ^* s5 C9 Z0 ?) u
        {( d& R! m# \4 q6 Q- p& P' \
                .active_low = 0," h$ H* v3 z8 o7 n
                .gpio = DA850_USER_LED3,3 ^+ k$ _+ E5 c  l" c
                .name = "user_led3",
" X. |! i; F6 |) N( {* u                .default_trigger = "default-on",4 C1 y. U1 r* s+ ]0 Y
        },
" G! m- N/ ^8 l: W/ ^  {$ h};; z1 f. z6 [8 _+ ^3 X/ W

; z- J# L6 K7 a% f# f. q3 Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) V% D2 P2 j  N1 U        .leds = da850_evm_tl_leds,
5 e2 i- u# o- K# m        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ B4 n  E2 `: `. }. y+ q6 q
};& o5 C5 C, H8 M  j. Z

' i5 w; k- V8 ^4 Hstatic void led_dev_release(struct device *dev)
' s* q* i  f" `- T! M{
" u) g3 W7 ]/ @4 Y5 j3 K: u$ e) }+ [};( s+ l# R" Y9 y5 N& p

" a9 |9 o, V3 r: D& ?4 Astatic struct platform_device da850_evm_tl_leds_device = {
! Q2 u& x- ~) w8 {' C! \- ~# H        .name                = "leds-gpio",
/ R5 C1 E- R. c7 e& m$ H        .id                = 1,
4 Y4 H, o8 Z$ G# d( S1 j4 C& [/ l        .dev = {+ U5 T+ ]/ U# N6 Z+ X3 u4 K
                .platform_data = &da850_evm_tl_leds_pdata,: |* z& g- l2 G0 H1 I* D1 n7 f7 \; ?
                .release = led_dev_release,
+ g! ^& ]& ^- l1 k9 D$ v        }) M$ j8 a- E/ {: x& u
};% Q8 E* U- d2 [2 \" d9 b. Y

: w# o3 q& o  |static int __init led_platform_init(void)
2 h- R# \9 A3 k5 d{
  U$ c5 ^; K) I( G, }# n( ?# M1 g& I9 ?        int ret;3 @3 v& u& w# ?* u6 A/ d0 d
#if 00 S3 M! S6 n3 Y2 U, x4 G1 g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" M3 O* b* ]+ D5 Q8 w2 x) h
        if (ret)" [& x' A* Y  Z% [, J# W
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") H# y6 [6 p9 w4 L8 l/ n
                                "%d\n", ret);# A0 T/ Z( C- ]8 e
#endif
6 p) O% g& j8 W& W. E( C: {1 A        ret = platform_device_register(&da850_evm_tl_leds_device);" X  n; x* N3 q: X2 o: G" W2 f
        if (ret)
) ^1 Q2 C( C! Y) N# x* B                pr_warning("Could not register som GPIO expander LEDS");
) j- [* c2 T0 I8 S) y; j! E: X6 c        else
5 W$ x& V, T% U7 q                printk(KERN_INFO "LED register sucessful!\n");7 U. z, c9 @3 {! w( L3 ]

5 ]5 `" h! h% p        return ret;! ~3 |4 S/ q0 O1 e  F
}1 e( M6 H5 T9 V8 @5 ~. B  L

) m9 V' y7 k& ~/ Bstatic void __exit led_platform_exit(void), A5 U. t2 k/ M$ }
{$ O) G5 i2 `4 _# Z& f
        platform_device_unregister(&da850_evm_tl_leds_device);9 f5 W# T% Z1 G* _

* x- H# X" S- [; E' c        printk(KERN_INFO "LED unregister!\n");
  `" y7 y" V- x% `}
+ p- j4 q3 ~$ y( P+ d! e: G6 e+ P% r: F  S* D& x
module_init(led_platform_init);
6 Y: m6 X* @5 Tmodule_exit(led_platform_exit);
+ \4 b* ~# }4 V& j) C- i8 j* T" s( A
MODULE_DESCRIPTION("Led platform driver");
: Z$ h4 y9 ]9 xMODULE_AUTHOR("Tronlong");8 I. j5 [0 e" z- w* u* K; x
MODULE_LICENSE("GPL");& U# x! @* C+ R& j  ^/ t, O

$ d7 ^: t* _+ {+ M8 R7 E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-7 10:11 , Processed in 0.043852 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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