程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 o+ W0 X  [; [7 L0 U3 \#include <linux/init.h>' r* C7 O4 T( Z  u2 o$ E( s
#include <linux/module.h>
) L* y- }, [4 e; |4 F#include <linux/kernel.h>  q& R2 c7 k: i8 J6 j2 e
#include <linux/types.h>
: ^7 z' T- D  e/ O! y#include <linux/gpio.h>
* Z7 W% b( ~: I, x  _; X#include <linux/leds.h>
% H1 k; m0 O8 \9 F#include <linux/platform_device.h>
  }3 F0 o1 Q* d8 C( H7 S) \- T. i3 m
#include <asm/mach-types.h>. H+ r9 R5 {$ i6 Z3 ]
#include <asm/mach/arch.h>
% `1 M0 [, I4 Z6 Z7 j6 p3 O% S#include <mach/da8xx.h>3 n7 o+ O! M4 r! N- U, Y8 _
#include <mach/mux.h>
, p% }+ b9 L* i9 C4 r# t& I$ C& T( C, E% K- W/ J
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  }7 g& I- v$ l: A3 `* O
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 ]# Y1 t1 N/ g6 e9 B. J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- T* Z, ^3 A& X+ [% n" J4 z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) i4 ^6 t9 T1 U8 k3 g0 r
3 H5 f' k7 J4 H/ }' M, C4 o/ W
/* assign the tl som board LED-GPIOs*/
- u# }' n) _/ Gstatic const short da850_evm_tl_user_led_pins[] = {$ A1 y) S" B+ {8 q
        /* These pins are definition at <mach/mux.h> file */
' V+ F* S' @. j        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" a0 ~9 g8 t/ @4 ~        -1
! ^2 ~! L, m7 S5 w};
3 f/ z- c3 s: d  E* C* G+ u
% ?% d( o% P2 Q4 l5 v/ Sstatic struct gpio_led da850_evm_tl_leds[] = {5 T6 M) |$ Z, ^8 ~
        {
3 y7 M% K* L# K                .active_low = 0,
& T7 X! h% l, o9 p( p7 z. x                .gpio = DA850_USER_LED0,
9 X7 g9 e7 X- b" W  Z1 {( z                .name = "user_led0",
/ B! j: d( K; {1 V                .default_trigger = "default-on",2 C  A! U- S3 q
        },) U* {1 ]8 M$ }
        {
: [6 ~% U" q" o' a- t                .active_low = 0,+ C6 ^; e5 j2 P& D4 V7 N
                .gpio = DA850_USER_LED1,! r: u7 B4 N. x/ @; a5 L' Q
                .name = "user_led1",1 v1 t+ |3 s. V( c0 [; W6 s
                .default_trigger = "default-on",
% C. Z5 s0 i! t$ i3 A        },; n  B9 C1 D# b+ h
        {3 J, z$ u1 L" O
                .active_low = 0,3 o6 M# u% b3 a0 n/ o, F
                .gpio = DA850_USER_LED2,
+ q7 n) d5 n) ~8 B                .name = "user_led2",
: [  f1 E3 B6 Q2 `4 o                .default_trigger = "default-on",5 w0 l$ q( N1 b0 Y1 b2 H! u; v
        },/ P0 R! Y2 A1 W
        {
, T) c) b& f( c1 W/ u- A) I1 P                .active_low = 0,
0 g% {1 X0 q5 Q+ C                .gpio = DA850_USER_LED3,
6 e" q7 W+ p( G. |! l# D5 F  K                .name = "user_led3",+ ~4 o0 }/ S* P  u$ Y
                .default_trigger = "default-on",% @( s9 z' `+ s7 h6 [
        },
1 c5 L, X9 C0 V3 \. J% d};
$ A* m0 Y2 x+ C: E$ X) ~7 ~
9 }/ \, D3 z' l) O' F! M6 astatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 t4 H  t0 y( }8 [        .leds = da850_evm_tl_leds,* K% ^: `6 o- E' ]- Y1 l/ g- h
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 O2 y  L3 n6 m, E};
) ~$ o# z4 ^, x3 v- n3 f% c" V% M& O% K
static void led_dev_release(struct device *dev)+ B. }7 `3 K' B! F9 p
{
4 N8 y! j% n  \, c};; c/ d0 g1 t6 b' q, u5 }- s; R
0 s( N! J3 M% u1 R3 h- k% l
static struct platform_device da850_evm_tl_leds_device = {
3 P) t: t5 Q; P& |% ^% T0 P        .name                = "leds-gpio",  `7 t9 J1 L  `
        .id                = 1,
9 U2 `4 M! s$ D/ N4 i$ i7 Q# e        .dev = {- R4 P  S* ]4 @; y) i
                .platform_data = &da850_evm_tl_leds_pdata,
+ R3 g# y. o- s2 V                .release = led_dev_release,& t# V' U$ X% I: n
        }
  n- W& J2 b$ O) S% @% i7 D};
. ~0 {4 \3 E9 p; I1 L% |5 e$ {+ ^2 k; v
static int __init led_platform_init(void)
" t6 _3 u/ a+ F6 W9 d{" `' `$ Z. v6 a2 r
        int ret;
7 Y6 h& J1 v! N9 N#if 0) j* ~9 c9 X3 R/ K- S! a
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ L6 [+ ]* G) m1 d" f5 Q        if (ret)! M, N6 ]: N+ x( ~0 H1 }7 {7 G
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 ?" k! t- a7 I4 @0 t
                                "%d\n", ret);
6 ^- E& N7 f. l9 H! ~4 k8 g, H7 ~! d#endif
8 L8 s! |. F1 J/ w% Z3 r1 ~        ret = platform_device_register(&da850_evm_tl_leds_device);( C  o5 x$ E) ]. J) k) C, h
        if (ret)" b& @3 x3 L/ }3 r4 l+ I9 }
                pr_warning("Could not register som GPIO expander LEDS");
; H  n7 Y" w2 P0 I6 b        else5 W) G7 u: Y; ?, D, ?
                printk(KERN_INFO "LED register sucessful!\n");
& U- l! X# O0 K# Q7 l9 i! S& D# c( T
        return ret;
/ t9 Y3 W# G6 L}& i8 B4 w& m" o
- }  S- R2 y  m
static void __exit led_platform_exit(void)( S  {+ K: h0 q& I, K: k. G
{
' Q9 F  M( u* x: [3 v# h# g% ^        platform_device_unregister(&da850_evm_tl_leds_device);/ Z8 J7 S5 G" z: l

+ A2 _, F3 r/ ?        printk(KERN_INFO "LED unregister!\n");
) X- ]0 j; w, y}$ d: I# h. c3 f/ G

' F  Y& `; k# P1 N& Qmodule_init(led_platform_init);
3 r4 j. x( l9 h# M0 l. {7 ]module_exit(led_platform_exit);
( f1 P4 U5 p8 Q8 e# O2 G/ r* c) M
( R6 {; U( U7 S4 O  mMODULE_DESCRIPTION("Led platform driver");9 F' ]: v& d: g5 @
MODULE_AUTHOR("Tronlong");& Q* ^3 c9 P% s9 \& I4 m6 s$ n. g
MODULE_LICENSE("GPL");
) U0 T' T# {: ~
+ J3 J  D! O, y% F, O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-11 19:18 , Processed in 0.039547 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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