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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 V0 P) n/ N4 `: e3 e#include <linux/init.h>
3 `, \# w( v) M1 [#include <linux/module.h>( x) v$ R: |' Y/ ^; a1 `1 ^
#include <linux/kernel.h>
2 K8 L# x- S' S1 Q+ j0 N2 M#include <linux/types.h>
" s$ Y* `5 N) A6 e; a, k#include <linux/gpio.h>
" |- l  d* _* _' e! o& A0 k#include <linux/leds.h>
+ w  E+ ]  Z8 f' u; H- q#include <linux/platform_device.h>
: a; s0 e4 Y9 E$ }! \1 z- _
" s5 I4 {, w! ?6 E% e& J1 v& P#include <asm/mach-types.h>
; u) l0 K: e- q; H#include <asm/mach/arch.h>
) L7 a# e6 \* b* X#include <mach/da8xx.h>
! G" h0 N; {9 N' p#include <mach/mux.h>6 l5 A" o6 r; Q9 k! m

+ z4 A# ^. X8 h/ O; S#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 D' p0 e; s' G% y: N7 X#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 ]; W* ?8 m$ b: ]( R- d
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ V9 P( z& ~  w8 L1 e+ E2 L#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 V( F; A3 u; y# ]1 P/ |& H$ u
) [- z: Y( s$ u  a2 q) m+ {2 J/* assign the tl som board LED-GPIOs*/
) w4 M, b+ U/ Vstatic const short da850_evm_tl_user_led_pins[] = {
# c9 D$ j( i! z2 U0 U        /* These pins are definition at <mach/mux.h> file */
2 Y. g3 n; K3 S, _1 i# r  Z3 J        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
/ B; V& `7 N4 |& B2 _8 N        -1
  b- p( d/ v7 C' D. R" k) ]/ a+ N};! Q: o9 g: A- Q0 l8 I5 V
% o3 R3 ?, e. y( `0 k) h. u# }
static struct gpio_led da850_evm_tl_leds[] = {) @9 o7 l1 o$ k; D* G
        {
( F/ f( e/ j; }                .active_low = 0,
. M1 j, u3 J/ a6 q4 D$ R                .gpio = DA850_USER_LED0,# e. C8 E& H( e
                .name = "user_led0",
: V1 t& z: `8 K" ]8 T* T; Y$ ~                .default_trigger = "default-on",
7 {: x/ f! ~8 t) t        },
" Z+ s5 L0 i7 b0 f9 A9 ?        {
# u) r. \4 y, s                .active_low = 0,
9 M* B+ |$ q1 r& Z& F1 {2 j                .gpio = DA850_USER_LED1,
& @9 {6 a! n% h" ?                .name = "user_led1",
4 ?5 d. T% ?- v) I1 y( H7 j                .default_trigger = "default-on",
2 |: Q/ Y- }( w9 M        },4 K0 C+ _( ~5 a; @2 o: k7 `2 J8 r
        {
2 ^3 m" e. p' t" x8 ~( l+ F/ \! O% H: e                .active_low = 0,
+ p# i& c4 n$ {# S1 y8 L" f6 v- \                .gpio = DA850_USER_LED2,2 X: ?; S! l8 N, B; ?/ d" L7 k
                .name = "user_led2",
" @1 b' Q" ^/ W% h* V' J2 @6 J                .default_trigger = "default-on",4 l# i- I$ _- L) \2 R' f2 J
        },
; U% v/ h$ t. ?        {+ m& X. E1 g2 M8 z$ n. w
                .active_low = 0,
9 A# B5 w+ s# ]! ~                .gpio = DA850_USER_LED3,% R! F' H) o" q2 j
                .name = "user_led3",
& u- J) S  A1 E. G0 g+ z) ^' p                .default_trigger = "default-on",7 W$ k+ d" S' I" g! b: w7 J6 ~
        },
2 w! B4 n/ Y, @2 V};( e$ H8 O; j/ e: I: o
/ r: `  Z: @( p( Q0 F7 _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 U" i0 g  x1 _# r% ]  D        .leds = da850_evm_tl_leds,3 r2 C  [( z3 h* Y* d; u" o) F
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 p2 a9 K; [% y8 R};
7 F6 `: v- O' o3 D5 A1 S8 @7 ~- `3 U- ?  O+ v+ A" U- `
static void led_dev_release(struct device *dev)
0 Z2 Z. h5 R& E8 H{6 K0 e" b: n+ `- S( \1 q
};
3 s% }- F" R7 X, m/ b2 ~
% @7 L/ w% K$ r1 |( o& fstatic struct platform_device da850_evm_tl_leds_device = {
. W! w. Q$ W( k! ?+ [" `        .name                = "leds-gpio",
' ?3 {) p& x- X9 E5 C        .id                = 1,
+ ?5 H& b# a+ S6 z# l: t9 a        .dev = {0 D* ]3 a' U, c$ g* [. H
                .platform_data = &da850_evm_tl_leds_pdata,/ T9 T) n' Y9 V1 l$ V1 F/ [2 G8 O% `
                .release = led_dev_release,) ~" O0 ?! c& Q7 u3 x1 h
        }5 T$ Y! ]/ U: y; {( V0 W2 G. @( B
};
. u0 w# _7 {* \# _) v
6 [0 ~$ o% X; X8 i% [" l( Pstatic int __init led_platform_init(void)1 d5 a. p! K4 @( Q, S
{
. ]  c2 b6 Z& n4 K! v        int ret;0 K0 ~3 D$ K- J3 ~0 a  Q- J
#if 0# K/ Y) a  ]2 {) C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* D2 D+ J6 N% @, {
        if (ret)" I' R3 K0 s' z1 q1 m, \
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! N- f* C( }4 x2 h
                                "%d\n", ret);9 D- [7 n# L2 f; Y. ^. S. _
#endif! f/ g4 u" J1 E4 _" K2 M9 u) Q
        ret = platform_device_register(&da850_evm_tl_leds_device);7 }9 u/ m. \5 f, J9 {) a" b
        if (ret)
9 |% s/ t% r$ G9 c' D                pr_warning("Could not register som GPIO expander LEDS");
8 e& \2 A8 m2 k$ k        else
! l8 J  O; L, a" T2 p                printk(KERN_INFO "LED register sucessful!\n");
8 I5 _; A# i9 ~6 e6 ?+ ?: P- G4 u" C9 e
        return ret;! ]8 L' O2 u- A" E0 |# i7 u
}* u+ E2 @7 O$ ~8 O
# A- S2 U9 \' ^/ g3 e
static void __exit led_platform_exit(void)
9 [4 p/ s; `0 I% l{
! p6 t  \& R: z; I( L        platform_device_unregister(&da850_evm_tl_leds_device);) Y+ G# A: v" O

3 _3 C! W6 f* C1 Q/ {        printk(KERN_INFO "LED unregister!\n");4 A! q3 H" R! S+ u8 p4 W6 D, h
}
; [/ g% f2 c  y2 J
, A% r$ U! s5 A0 _- O5 }module_init(led_platform_init);4 J8 N1 V3 r# _3 q: B8 L
module_exit(led_platform_exit);
6 D$ `* d& I6 P  }& V+ u4 n* Z4 ~
4 l# a) o; ]6 p% t$ V. j, ?" JMODULE_DESCRIPTION("Led platform driver");
3 }) @' d' |  tMODULE_AUTHOR("Tronlong");
  k( F: ?! S. d( @MODULE_LICENSE("GPL");- A7 J" r; H( ]/ p( `

9 F; v. j0 a6 y9 c" K4 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-18 03:53 , Processed in 0.045830 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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