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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 `6 ^( F; e, f. B% d: f#include <linux/init.h>2 Q; ^6 ^2 w7 F$ X; ~7 D" Z& S
#include <linux/module.h>9 u' l" [2 Y" h
#include <linux/kernel.h>0 ]6 s0 y# u1 E) e& O) b, d
#include <linux/types.h>6 G) W) d# C( g
#include <linux/gpio.h>
3 o# ^# L2 b) q5 H#include <linux/leds.h>3 U+ n  K, U1 g* ]; w
#include <linux/platform_device.h>9 m; A- o; y; V! Q; Q) q
* I2 C, @; i  L. c* a* E1 ^! y
#include <asm/mach-types.h>/ v2 A4 V1 v: A; D" u) h  p
#include <asm/mach/arch.h>
" c* _/ n  X3 V. g( G* B; ^#include <mach/da8xx.h>
* b& K5 _. ^0 p( M0 r2 W: b6 E9 B8 @, h#include <mach/mux.h>+ \, A: q4 c; r- t6 h  D; |& }) Y& U
7 H+ I4 M: S: k7 E: U3 l$ `8 G) N
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 d4 i# o% {3 K3 o/ S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): g$ j3 ~0 H1 a+ d1 N' M
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 A. j1 x! k  ^8 S" L#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 F- B# w# M6 _7 \

( D6 f! b: |$ n" M, g4 F- r/* assign the tl som board LED-GPIOs*/
1 R; O) g6 X* a* ~  r& V* Fstatic const short da850_evm_tl_user_led_pins[] = {# c+ ]1 [9 W% J; ?
        /* These pins are definition at <mach/mux.h> file */
' n1 q# r  N1 C  {! k* G( S/ ?        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, F, ~5 v6 G7 [
        -1. Y: B9 A- t  u  q+ L3 P
};
  u. Q; K6 |4 |4 ?' w6 @5 Q* \+ K) d
static struct gpio_led da850_evm_tl_leds[] = {
  [/ b0 U' `: l4 a( h6 |3 p: Y        {4 L- U# C! l7 `3 T8 m3 m
                .active_low = 0,. N* w* U6 a/ T$ Q) X% h+ O! X
                .gpio = DA850_USER_LED0,( x2 l* f+ w/ u" f! S( F( }
                .name = "user_led0",
; [0 R/ O  d9 [2 A                .default_trigger = "default-on",
' x- u4 }: R  M        },( a5 y) M. p' k( ?% O0 a
        {4 ]. e& t+ k+ {
                .active_low = 0,
! U8 b- p5 D% B* g8 J                .gpio = DA850_USER_LED1,/ [# a6 }: b0 Z8 t8 l  f* d/ r
                .name = "user_led1",
# U' i3 \6 K3 F- y2 a" R& w                .default_trigger = "default-on"," }' y; l( n( l
        },6 D2 P: w5 R. }9 ?7 i' E' D
        {+ t* J& _0 D1 F* v( L/ z# m
                .active_low = 0,) b( ~3 S& W8 |# Q1 n+ R0 j  F$ j
                .gpio = DA850_USER_LED2,7 Z' u/ T1 X( v
                .name = "user_led2",
6 v4 |0 x4 k$ ]! P2 U; f9 _                .default_trigger = "default-on",
% G$ l3 ?& i3 m+ V* q# z        },+ p% {9 @! _( k) p( _
        {
( |. k& F% D" c& c                .active_low = 0,
/ y- G7 o& [: F, e$ ]* d) U" P                .gpio = DA850_USER_LED3,
) I2 M4 W( `, V$ R8 c8 s0 I                .name = "user_led3",
3 n% J; K2 f, X0 Z2 e* P3 u                .default_trigger = "default-on",
" u5 N% O7 t1 {; j5 L! [6 p5 e" L        },
3 u" r, ^- \% g/ _2 e: ]& Q};! X4 c) s) Q4 X) d0 `1 Z9 e
1 V) n# M& G/ Q$ t: @9 K
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& z  Q$ K7 }) X6 D1 x1 G3 O
        .leds = da850_evm_tl_leds,
' F: t8 f6 \, z) e, V2 t        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& m6 l% S9 _+ r" w9 T( ^0 B) q
};# ]2 _- h! ]0 g, ~( j

  W( n$ \) b/ O+ a+ kstatic void led_dev_release(struct device *dev)" i6 a, U$ Q4 X: S3 y
{
% l' ^. W, x( r8 C3 w( ]};2 L2 B; G: _! ~1 d
- o7 f$ A2 X7 V: h' L/ i7 x0 z$ m
static struct platform_device da850_evm_tl_leds_device = {( m( z$ k: j; ^4 |, z
        .name                = "leds-gpio",0 J! e: e2 D. n& y2 N
        .id                = 1,: a1 H: q3 ^2 D. l# p
        .dev = {% E, Q6 q  ?/ w
                .platform_data = &da850_evm_tl_leds_pdata,
- o& F2 t" u5 \6 x& q( x                .release = led_dev_release,
, t  s+ n3 z/ X# n/ @        }( w2 m; X/ B4 C% N" o
};
) o) [$ a& W) m8 X( E" T
! ]% h. i6 c: ~+ a* w0 K# Ostatic int __init led_platform_init(void)' T# z. e9 K) P0 k
{- _- Q# K- {5 E
        int ret;
% X& O  C' J6 w. d#if 07 G, ]3 w$ I1 Z( r3 @% ~1 w
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- o2 D5 F( m  Q+ F
        if (ret)
5 p# h& z$ A3 I- v! Y' ^                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# U% A% I& T* p; e1 w' G# v2 j                                "%d\n", ret);
- ?5 X+ [) I4 K# v  I/ h$ I& m#endif" ?9 Y$ L, l7 R5 Z0 I4 ^
        ret = platform_device_register(&da850_evm_tl_leds_device);
" ], V: N+ H( s0 n3 `2 v        if (ret)/ A2 `( m6 y& K
                pr_warning("Could not register som GPIO expander LEDS");! v5 Q, x% m( e: U8 J* R3 I
        else
/ W; {  Q& A: S) j+ l+ Q( l                printk(KERN_INFO "LED register sucessful!\n");5 {1 D: j- T) l: o2 `. ?$ G+ g
: P1 v$ p: {6 q9 S  Z4 @3 F
        return ret;
& _) `; j% Q4 A7 J- w}
1 C; {+ ^9 ]! z, }6 T( o6 c* d. Q. t3 |! x- ?: v/ x/ D, o' n
static void __exit led_platform_exit(void)
, ]" @/ k0 J: k{
; U$ r5 W/ z2 E& Y* Y! m# }        platform_device_unregister(&da850_evm_tl_leds_device);7 f$ Y" ]2 F- V3 i

. ^2 }6 g2 w: h/ M/ y( v- |        printk(KERN_INFO "LED unregister!\n");/ W6 t, I0 K- o8 s
}/ ]; b* @+ q; `: t, u( \- ~. u
0 t5 p4 P5 I4 X7 Z
module_init(led_platform_init);! k# l' [6 l' L0 f
module_exit(led_platform_exit);
' u/ E8 p& T& D& P  E
- R0 Q# E. l: _: _4 rMODULE_DESCRIPTION("Led platform driver");
6 K8 a5 |' Y% V1 iMODULE_AUTHOR("Tronlong");
+ R, W5 Y: K  J' w  IMODULE_LICENSE("GPL");
* Q8 ^2 D, _8 V% E
  e+ b, x; L  ]( M7 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-23 12:57 , Processed in 0.040316 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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