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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. z2 e" x' n0 u! N9 W
#include <linux/init.h>4 m# Q, v% s$ d$ I  ?5 ]1 y# ]/ C7 c
#include <linux/module.h>
) {+ `, X; S5 K, k2 }) A8 x#include <linux/kernel.h>
. U& p8 _/ \7 _3 s# H8 F/ ]4 T#include <linux/types.h>5 |5 k  R( f( @
#include <linux/gpio.h>! B! n5 Z' E; W+ U
#include <linux/leds.h>" i% c/ M( T& z+ |0 C1 Y/ h% H
#include <linux/platform_device.h>3 b+ N5 u7 l# p/ |1 C' U* j
6 c& K1 l# N0 o' R% [- q
#include <asm/mach-types.h>
8 l1 S: ^( G4 R% o#include <asm/mach/arch.h>
0 S8 V8 ?% I; l#include <mach/da8xx.h>
% ?* T: A! n& v2 m1 S( i- v#include <mach/mux.h>
- b: B3 A. z  ~: I7 M! W2 u5 u4 n
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 Z  R$ p3 d( V, T#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 x: e% T2 }0 z, c9 P& X5 t# }
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 e! d0 U) h. H( j2 ?5 f4 I4 K
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 f7 q8 C. m/ p# d* D
6 I; H$ g1 ?6 `) w% Z
/* assign the tl som board LED-GPIOs*/
7 r5 W% e% D5 c3 Fstatic const short da850_evm_tl_user_led_pins[] = {
/ ~% i& u5 z5 P5 u6 z) D        /* These pins are definition at <mach/mux.h> file */
1 f$ a" o- K" D  K( M% f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' T2 G% s+ g/ G) x# L0 t) c! m        -1; i7 L& i) d9 k& s7 N' a1 u; x% W
};
' {1 c, ?+ F7 n; ~2 L
$ n  b3 u! B9 r+ j, f& Estatic struct gpio_led da850_evm_tl_leds[] = {: ?- ?3 m1 q1 w& b1 J
        {
1 G  _$ Q0 y! U1 @                .active_low = 0,' P7 Q9 h, ^" d
                .gpio = DA850_USER_LED0,# @4 U. Q1 u1 n, q/ K# ]9 s# f
                .name = "user_led0",
$ B4 _' h5 E7 i9 J' ]                .default_trigger = "default-on",% R! d+ m9 E* m$ ~5 V% {
        },% S% i9 W! h9 a
        {  {  [9 |9 H  x  m4 q5 H- o
                .active_low = 0,
9 p. _- ^% L6 Q9 F4 j( C9 D                .gpio = DA850_USER_LED1,, a, m* j# P" k: W) Q; S5 G
                .name = "user_led1",
9 T4 \1 @/ g* V. X4 p( X. C                .default_trigger = "default-on",7 U4 z0 V2 v: ~0 x( i. `
        },3 ^( p  N0 _# H: x, k
        {. l( [/ X0 z4 D' B
                .active_low = 0,! m2 j) f# y! u
                .gpio = DA850_USER_LED2,
0 B# r4 d1 j* H6 r5 f; L                .name = "user_led2",
0 O" w6 i  ?% C  }5 ~% @3 O                .default_trigger = "default-on",1 C7 l. M0 o: u3 K" f2 c1 h: A
        },' J# y7 K7 y! c, b+ R
        {
2 o8 j; V- G8 J                .active_low = 0,4 p+ Z9 d( S% q
                .gpio = DA850_USER_LED3,
8 r3 w/ |* M: Q$ S                .name = "user_led3",
0 C+ R* R0 R) R8 \( f/ `: e. @                .default_trigger = "default-on",5 [# A  @* _5 p+ n, \
        },
9 G) I7 V& ^* k' S  n4 q+ [! f% o9 E8 u};
% P0 x: m( J/ \; ^) R6 K0 G# R, F3 J$ n5 I1 k% M" [/ m$ D
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  b( g. E6 I$ [2 e; F" O" ~2 t        .leds = da850_evm_tl_leds,/ @2 g! f; ?! z0 n, d7 h
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) N$ ?+ J% y( A  B
};) l9 O. p( C+ ]

3 X) ~8 x% K! m  C& Zstatic void led_dev_release(struct device *dev)
8 Y& j) o7 G# h# M  z% {{9 Q9 \& k3 Q6 ~3 h2 @
};
; b# @) C1 O- B, x8 W( f8 y' k* d0 }! }; f+ y
static struct platform_device da850_evm_tl_leds_device = {/ e2 m' D5 t) e6 W/ l* y5 ?
        .name                = "leds-gpio",3 R7 \6 V* L* @
        .id                = 1,8 [% Z" a: b# n& C5 |6 v
        .dev = {
* n! m' j  O8 K                .platform_data = &da850_evm_tl_leds_pdata,4 R" ^, }: k7 [1 _# i
                .release = led_dev_release,& ]" |% L+ ], F9 t3 M+ \/ Q
        }
3 V) ]. b$ Y9 p' a};8 O8 S  i/ b6 Z
- M6 J& s8 C4 _" F# ~! s* B
static int __init led_platform_init(void)
) e- ^1 l- D# q( h. L{
1 V1 _' n' L/ T2 t4 ]        int ret;
7 t1 ~; _8 K4 x* I#if 04 G! a5 E0 r: k
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 X  V4 ?( D# z4 @4 G- P7 z        if (ret)* j* X/ L. J6 D' z/ u2 s
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* o: v; p" p2 ~$ p
                                "%d\n", ret);
, n) m; e6 y2 E' X#endif
  u2 j2 V( Z/ K' Z        ret = platform_device_register(&da850_evm_tl_leds_device);6 j( F* J) D: v3 B2 m3 [
        if (ret)
7 s, ^% s; M" Z$ A  u                pr_warning("Could not register som GPIO expander LEDS");
# m3 [, O) m( O" |0 @- a        else; @/ G8 e# n. P
                printk(KERN_INFO "LED register sucessful!\n");4 z9 d& Z- s3 G$ p* O

3 `1 p- I: L. W3 ]" l        return ret;
( [) b1 _% X0 Q# l}0 J& t# B% h& \" r9 v
  G9 p) k8 J# m
static void __exit led_platform_exit(void); x; }' b$ A3 B0 y! j
{
% d4 l$ P. [& v/ Y7 Z        platform_device_unregister(&da850_evm_tl_leds_device);7 g* c" n! P0 @% b% n. D
; ^9 Q/ l4 `& v8 S' @9 @* L: N
        printk(KERN_INFO "LED unregister!\n");
# u8 r8 d/ N5 M9 U: }% H}
5 h) ?5 j2 K6 b
  U7 [8 u& L; ^1 vmodule_init(led_platform_init);
, t4 b3 }  l! jmodule_exit(led_platform_exit);
8 ]* A- W' j, O' A7 Y
: |8 X& `5 Z7 g  k" ^9 `. \- P" Y4 kMODULE_DESCRIPTION("Led platform driver");
2 ^% X) B' b/ M* t$ \2 @MODULE_AUTHOR("Tronlong");
1 ?9 V( |7 G0 E% u1 F' dMODULE_LICENSE("GPL");
5 \. i4 {5 K6 d" ?; v' U
; n( w" h* k: q9 @- c2 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-9 13:37 , Processed in 0.037198 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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