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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 c6 m% O* p/ s: @#include <linux/init.h>
( R& ]' b1 j/ L#include <linux/module.h>
- o' K5 p, J. ], J4 ]#include <linux/kernel.h>
+ B7 R( M6 Z* m. z/ U! y; m# T#include <linux/types.h>
2 n5 N. m  b; I' V: c' k#include <linux/gpio.h>  V' h+ r. A  b$ R; n1 m$ Y* o
#include <linux/leds.h>9 f1 ^! O0 a* G5 d- }
#include <linux/platform_device.h>
" `7 e; T( ?0 Z# [: ]7 c$ P7 Y' M; m! c' [) U2 j) O: p" I
#include <asm/mach-types.h># p1 Y  D" M: z
#include <asm/mach/arch.h>. _' o6 `+ O( h3 H! \
#include <mach/da8xx.h>" B0 V! x  F4 b4 k% i, |7 l
#include <mach/mux.h>
  z) N+ P7 U' ~$ k8 Q7 {) A: C" c; P8 |1 m' [
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); A+ m" ~6 K. O* a, T2 u( j( c3 n$ y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 A/ _$ b6 V4 z5 s9 n! b#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); M8 K! _7 O2 F# G5 a% A: F$ z8 i
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* y+ F( O3 h" x) s

, N# u1 }7 C1 F5 l8 l$ k/* assign the tl som board LED-GPIOs*/: t1 A% Q% P3 g$ _/ [- d1 c, `
static const short da850_evm_tl_user_led_pins[] = {
! q3 b, N2 _, n& f5 G' H        /* These pins are definition at <mach/mux.h> file */
1 H  X* z- E1 ?6 y0 ]8 t$ m: r        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ n6 d; [; t! ~# M* o4 @7 Y/ {
        -11 F% ~9 X3 ^; `0 q3 i5 P2 o3 J% d8 H
};
2 a: _& y( B! @4 r- ]/ l- v8 t% T
, e# n  `7 {" e; G8 y+ e2 kstatic struct gpio_led da850_evm_tl_leds[] = {9 m& {8 m, i5 J' X/ T! S
        {$ k' U# ^) \7 }- F$ N  L3 k
                .active_low = 0,( g7 e9 ]) W, [. E" g
                .gpio = DA850_USER_LED0,5 G1 _) O5 F. `5 k; i* d" R
                .name = "user_led0",
# R  i" U: q! Z2 ]' _( q$ t8 |! f                .default_trigger = "default-on",1 z. f8 ]# }# v3 W& r( B7 y, T
        }," B' h' ~% i  p0 ^3 y+ e! b" g5 u3 u
        {
' q* W8 E. t7 f                .active_low = 0,7 f3 x! h; l9 S# r2 l& x
                .gpio = DA850_USER_LED1,
6 g/ V; k; {/ c* ^: ^9 s0 X                .name = "user_led1",  X8 N/ I: W5 i. b
                .default_trigger = "default-on",
' R6 M- F8 ?$ V: I( A+ \  w        },7 R2 Q3 m' z' T0 {) F
        {5 p" z. i( s2 A, m
                .active_low = 0,$ q8 H: |5 N% M0 E. B
                .gpio = DA850_USER_LED2,
' f, c. u/ o9 {1 w$ E4 X                .name = "user_led2",
& c. Y. W0 f4 q  U                .default_trigger = "default-on",
- a9 F& h% g1 H% K1 Y        },$ _. V0 u6 ]+ n* ~8 K
        {
% R$ ?) m7 k$ _+ n" j                .active_low = 0,
3 |7 q1 V8 K& s( {9 C+ @7 w                .gpio = DA850_USER_LED3,
: b9 u+ `& T: H% F+ I6 F, U: {7 O' c                .name = "user_led3",3 ?- ]9 |; l! M. D: [, |. B+ F1 W
                .default_trigger = "default-on",
4 z% {4 L, A2 {7 \! b        },
$ G5 _( d- _+ X1 e& [6 ]6 l1 b};. o. R& e* h; Q

$ t% I( b5 g* U4 f. b  F& Zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" Z5 ^( W( `) s# }! j
        .leds = da850_evm_tl_leds,4 N6 ]$ W8 r* Q5 X  X
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 G7 }1 w: _2 e- @
};
* I. W' ?  E( T+ Z& `+ W+ v- J/ Y$ L" G4 i# X6 T7 b
static void led_dev_release(struct device *dev)
4 ?  @. a+ W" t. @% f: c* {$ z{
! K9 E' ]7 {- D0 j};
9 C" y8 f6 d- ~
9 W7 R& j  Y. t- L, vstatic struct platform_device da850_evm_tl_leds_device = {
0 L, ]( U% \5 w6 ?/ }/ q) p/ a* G        .name                = "leds-gpio",
# D" o; o  |' q  |- @: j3 T" B        .id                = 1,
3 U: J6 n; s* O/ U% O2 T1 J        .dev = {* {+ i2 p. a5 F# O
                .platform_data = &da850_evm_tl_leds_pdata,- y3 s8 e- W" W9 [- Z* n( m" [
                .release = led_dev_release,1 u! B; [( E4 Z' a$ k3 h  F7 T2 O
        }8 c- x% b8 G. w* i! ?
};( @7 [" T% P# k2 L( o* N

# n/ ]( A0 k  D& }: B1 H, ?static int __init led_platform_init(void)
, z: [# Z. h9 l& a3 g$ W{  s8 S* P) X% E" t0 |
        int ret;
1 b1 ~/ h! Z( C$ B#if 05 ~+ G, q' Q: p1 x  X: `/ N
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& G5 o/ Z& H# H6 f( Q        if (ret)
" ~  K& M2 _$ U' ?$ {                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& V! o1 W) `1 b) ?" U
                                "%d\n", ret);
; c5 D) b. f" \5 n1 a#endif5 r3 R: I1 _- ~2 M
        ret = platform_device_register(&da850_evm_tl_leds_device);
* z  U) Q2 P3 o0 D/ g+ F        if (ret), u! `$ e1 O# C$ S1 U; H( }8 J0 d
                pr_warning("Could not register som GPIO expander LEDS");/ N1 J4 T6 L% d( n
        else
' m: R3 z1 ^) A) S( ?: a6 g                printk(KERN_INFO "LED register sucessful!\n");
& u% s: B3 E% ^' p9 O- w
0 I+ ], Y( v- ]        return ret;2 a* O1 ^5 h, U
}
, W( f9 Q& v1 P! x! o% J1 ?$ m( Y" x; y
static void __exit led_platform_exit(void)
3 N9 R& g0 e0 U+ m3 B4 p& Q7 ~{
3 Y) K, c' G( p$ r" q& k        platform_device_unregister(&da850_evm_tl_leds_device);' v& s7 d+ ]9 y+ L1 l+ q3 c

% Z( L& a7 z9 u        printk(KERN_INFO "LED unregister!\n");
" W# {. F1 h$ h0 x% R}" o0 X* r5 v! e4 G' v! D& e
8 C) ^: T8 `) O8 `# k( P9 D. X
module_init(led_platform_init);1 e* w, L% I$ G  P7 l8 c5 R
module_exit(led_platform_exit);
' W, k+ W: @; n( ~- z
! @. L' d- |9 }. bMODULE_DESCRIPTION("Led platform driver");
' }! b* O+ F0 L+ z, w. dMODULE_AUTHOR("Tronlong");
5 u# l, I5 U7 RMODULE_LICENSE("GPL");
% Z$ @' @( e# F" |" H% o7 D% Q4 b  o6 Z$ L# u# f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-27 11:13 , Processed in 0.040686 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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