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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, a2 w  N+ s/ p+ a) T
#include <linux/init.h>
7 e5 C1 s( U' Z. e#include <linux/module.h>; {9 A1 n/ f. j6 P6 ^) Q8 g
#include <linux/kernel.h>/ e+ p  ]& D4 f1 t" T( ]6 G# \  h6 {
#include <linux/types.h>
6 K) Z! |1 O# O% M% r+ K# u#include <linux/gpio.h>
! k1 O7 h$ Q/ u, y" J#include <linux/leds.h>$ I! L- I3 H8 L6 j  k6 A/ ]' N
#include <linux/platform_device.h>
; p  \: C/ t2 Q, _2 R0 D3 b$ S6 E- K5 q" }! r. S
#include <asm/mach-types.h>
# O4 B2 A. Z) i% N% y& K" Y4 K#include <asm/mach/arch.h>' D0 Q- v8 I8 M; E
#include <mach/da8xx.h>
* Q" ^# z9 B; @#include <mach/mux.h>
* R2 p- ~8 h+ R7 O9 l
0 u4 I+ a+ T0 q% ~" n0 D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* n' C. ]8 B( f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' X5 r- A( L! Y- R: ^8 C#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ Y$ ], P& W, l% j6 a4 L#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( L: r. o4 w( H. B# P% i( v9 K$ E. U
; e/ c3 `& S/ R$ [/ a$ Y6 P: k
/* assign the tl som board LED-GPIOs*/8 z" `- _4 W  p2 p5 G8 O
static const short da850_evm_tl_user_led_pins[] = {% S5 b4 T4 @% Q4 t+ m2 Y' e5 _
        /* These pins are definition at <mach/mux.h> file */" ], Z8 v( v" P: o# _
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' w+ ^+ C4 R3 e* p" G1 \- q* B        -1
' r7 U4 S/ x; s! Z4 F. f; H" ~};
& p/ Z- t: T* d: w) f# f- t% w% ^. C+ `
static struct gpio_led da850_evm_tl_leds[] = {
1 M2 H* ^$ t' }! p        {
+ J1 m7 b& n9 a( B                .active_low = 0,! R7 }8 V1 p" ^3 k+ g# ]2 N7 Y% e
                .gpio = DA850_USER_LED0,
# V5 G8 b9 r1 O) N9 ~7 |8 O6 t2 F                .name = "user_led0",
7 P+ T' s$ B2 H( u# @& ?" T                .default_trigger = "default-on",. M3 o% ], s0 Q, r) @3 }
        },
, I4 r" X9 `( A' p1 x        {
3 P9 X4 ]: j6 m: b6 u' N                .active_low = 0,0 g1 p& m0 I# L
                .gpio = DA850_USER_LED1,
) C# E& G5 _, ]5 E                .name = "user_led1",
% t4 V8 n* _* y9 r. Q                .default_trigger = "default-on",4 O0 A0 T- d  \
        },
0 b+ v- D; S( J, B6 @+ E        {
; ]9 G+ t: L) {                .active_low = 0,1 A7 s$ c( y) y$ z* [1 W4 R) _# m
                .gpio = DA850_USER_LED2,
/ k: s. U  W; p9 g, H2 ^                .name = "user_led2",) q" Y7 h6 \5 |  {* Z* t
                .default_trigger = "default-on",, e& y* l5 d0 i! V' |) t4 |/ }
        },
" F( x/ x) a! \1 V% l5 w' O        {! l' v% m& ~+ o. Y0 @# Q, Z
                .active_low = 0,
) e; ?2 }: A  G: s( b                .gpio = DA850_USER_LED3,
' |# ^7 ?% v. V0 `/ u8 B6 a4 q                .name = "user_led3",
( l$ g' u, |" E) [, Q$ z8 l+ I                .default_trigger = "default-on",
: V+ M- {3 G* A* C( P        },
$ A4 y& e& ?  k' \};
# c* R/ `( W0 G/ c! o0 t8 A( V
+ c$ Q; k2 y, M& M, t# }: ustatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 `' I7 w4 R* R' t        .leds = da850_evm_tl_leds,6 I$ {6 b4 P; b2 T+ j
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 @, [) G5 y# K! R- g+ t8 [* c};3 u+ E# W% ]" x$ @- |
( q* ^' {# [. E3 I
static void led_dev_release(struct device *dev)
- N' F3 N' ]$ K2 Z{7 Q! D  z- G2 [$ C: N. [
};
; M& b# O7 E' {% T$ ]' @% |+ g- {. l, e3 W+ Y* I' z: x
static struct platform_device da850_evm_tl_leds_device = {  n+ j1 L7 P- {" x
        .name                = "leds-gpio",7 ?8 k* v2 c+ b9 _  j- ~- N# M
        .id                = 1,
5 V/ t2 I) N  [8 E, L        .dev = {
# g# z& H1 @. {2 {; ~' V2 y                .platform_data = &da850_evm_tl_leds_pdata,
& Y# c& O; _0 r$ y" t                .release = led_dev_release,3 l; K9 b7 }3 \/ O7 N* F
        }: Z+ T( R, ^1 f- t! S
};
5 u; M9 t9 ]; j' I
% I* ], X! r) M6 T" Rstatic int __init led_platform_init(void)
7 u' }& E* ]8 n4 r0 S% X2 a{
' j2 f7 k, ~! L! N! a2 ^        int ret;+ Z5 v% Y; u; |* m$ v% J
#if 0% [- \2 ?7 ]8 O. \& }8 Z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);$ ?( O% T% R* Z+ p
        if (ret)
; q8 T# d( f% s: k5 m4 M7 y" a  \6 o                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ E: ^# }2 G1 z7 k- L, R                                "%d\n", ret);5 n0 ~" M' |0 K3 Y: d  j$ r
#endif+ J7 }7 i/ D4 ^: ~6 a
        ret = platform_device_register(&da850_evm_tl_leds_device);
) s# ?) w) e! s1 W$ `# g! p        if (ret)
) o* ^/ o0 f; f                pr_warning("Could not register som GPIO expander LEDS");( ~/ N# E1 T) Y! z7 i. M) A
        else
( \: w5 {8 z3 \. M! d+ G' [                printk(KERN_INFO "LED register sucessful!\n");
# [. T' l' w) x$ i
) h# }1 K* n; j1 O( ]        return ret;/ V# F9 {' B5 }* q: a+ n- T2 U9 g
}. j0 ]. ~' |' Y* K

$ r- J( v( @. q) p( ^* qstatic void __exit led_platform_exit(void)
" F) L$ \/ x, N; R& a; O0 P4 H{# O& d% }5 N, u3 f5 i
        platform_device_unregister(&da850_evm_tl_leds_device);
2 l. |8 L6 n& F. l' A  C" j8 S
2 k  u6 r, y) m( P, n; `        printk(KERN_INFO "LED unregister!\n");
2 v2 T; l2 e8 J& C* P* w3 z}
8 M1 K9 p- i, M" u& D9 d* P& Z+ t, [
module_init(led_platform_init);
) v# ?9 }, s. T6 x% b" {module_exit(led_platform_exit);
8 i! i* J$ G1 U* K: w/ X" N  t! j# G
: `( d: N2 u  D, g1 ]MODULE_DESCRIPTION("Led platform driver");
- }% W/ k1 Z: ~6 N9 U9 XMODULE_AUTHOR("Tronlong");
- h0 D& p+ Y/ |) c' c$ L. MMODULE_LICENSE("GPL");5 R4 h" b& f$ x! J. t7 f3 {$ ?6 n9 T
2 r' {" R/ y0 g$ _5 s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-10 16:12 , Processed in 0.039356 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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