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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 ]1 N# p  t: g$ |#include <linux/init.h>
* Y7 r/ i3 l6 ^& Y, j1 S#include <linux/module.h>4 M; T9 t1 M, H$ t  l
#include <linux/kernel.h>
9 w" S: q6 ?2 _/ S3 @#include <linux/types.h>* D$ l( @9 F7 F
#include <linux/gpio.h>
4 q% b2 o$ j% k; [4 X% ?#include <linux/leds.h>: c9 j* K- w# h" y5 d( a  j- s3 O2 [
#include <linux/platform_device.h>
5 }4 p; t; c3 m5 k- U1 ~) c
) v$ ~% O4 ^7 k' _0 @" y) j#include <asm/mach-types.h>+ Q9 G4 K& O6 f+ Y: I1 b0 m# }
#include <asm/mach/arch.h>
7 A) d' B7 ^( m: e#include <mach/da8xx.h>
$ ^$ i: S8 R+ A$ Q! ]; _#include <mach/mux.h>
9 n6 b, o9 b; S) m% K, _0 {
9 r! ?: {' ]) d+ }( h! w#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 i& H  u# h6 [$ A% S" @7 E  H- {#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ v7 H3 @2 H5 ]* ~3 k9 x
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  Y4 q2 P2 F% E7 _% M2 f
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; s" x3 Y# R& ^" h( N; z
2 l) j* [% M, _/* assign the tl som board LED-GPIOs*/
+ {! W1 U+ T; {' y3 jstatic const short da850_evm_tl_user_led_pins[] = {4 {% e1 A; J4 a: f: F
        /* These pins are definition at <mach/mux.h> file */
1 `- n! e0 g$ a3 K        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ H* h1 t# l, Y
        -1
8 |% ^- F: t9 ?+ A7 y1 s$ w};0 e! y( a+ {5 q

, Z, n0 L2 J; p  u+ f  \static struct gpio_led da850_evm_tl_leds[] = {; B% t( P5 F- w: `, i" U
        {
+ j# k/ x0 R0 ?/ b% F                .active_low = 0,2 f+ y$ m# s' V0 L5 S' G
                .gpio = DA850_USER_LED0,7 k* o1 m1 W9 O4 h
                .name = "user_led0",
- ]) N0 t# Y, x5 Y, F: C/ s4 g4 G                .default_trigger = "default-on",
* M# C% U$ I- U: M        },+ B! k% N4 q% H: V
        {
3 B9 \( x4 x, ^' _4 F2 p                .active_low = 0,
: X0 m6 E5 R" [0 Y                .gpio = DA850_USER_LED1,& \' K6 N% u; D/ ]1 `# x
                .name = "user_led1",
/ [" F/ S- Z" p                .default_trigger = "default-on",
7 B  }; ^# H- e% J        },
1 z* t. D+ \3 J6 \/ \/ z        {
7 Q- C: G- k* B3 P" v" H                .active_low = 0,: _" U: {& e1 Q4 l& |' f
                .gpio = DA850_USER_LED2,
% L4 y( q# d, f6 K- Q6 M8 ]                .name = "user_led2",
" u3 i. ~) A2 D- u' N$ r                .default_trigger = "default-on",. n* P) v% d# v8 |1 ^4 Y
        },
) Q2 \6 \$ Q- }3 c! k2 V        {1 v7 _3 Z, ?/ K$ ?3 x' }% D
                .active_low = 0,( m( y  a* H, ~$ F) X1 ^
                .gpio = DA850_USER_LED3,
+ R1 B7 }; s9 V2 ?2 v% L                .name = "user_led3",: S& {3 o5 F% a, ~
                .default_trigger = "default-on",3 J; u+ s! L6 U, ?
        },7 Y( L+ Q+ s+ t* W' P
};
, l9 J; K9 k* V7 k3 k* X5 o0 b- }' }1 B0 [1 H9 }
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 Q, s$ j) e2 P2 o
        .leds = da850_evm_tl_leds,2 e5 |0 V" j- ^( M: w$ R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" Q* _0 w5 S; c! K8 O8 I5 k) T};
6 S8 b! M4 ?& `, ]# R
  F! g' q2 _8 n  V+ k2 n* M1 a6 Lstatic void led_dev_release(struct device *dev)- }0 h' l. Y* h0 h& m
{( f1 Z% T$ V  @6 C6 ^
};! H8 n  ^% P7 B! U! ^6 i' [
0 e! ^- n, V. Y( k8 x' y  {
static struct platform_device da850_evm_tl_leds_device = {  j* |6 {2 `3 g0 t8 \# s
        .name                = "leds-gpio",- C& J5 t0 a& l1 Q
        .id                = 1,
5 E* v2 L+ B) B, K/ S4 b8 v        .dev = {
! X  b* `' h6 T- N7 I- p0 L                .platform_data = &da850_evm_tl_leds_pdata,  ~2 U$ r0 H. \+ u! R5 Q
                .release = led_dev_release,/ g3 [1 [5 v' c) p4 L' f( b
        }% q5 Y/ t4 L* U( B1 f6 M
};
/ I  X4 S/ N; ?$ e+ E. _6 r5 y2 R& U% n' A$ A0 q2 `5 k; }
static int __init led_platform_init(void)
" `' S5 K4 p5 Z9 m# ?7 M{' R$ b$ d! p- I3 J1 c5 F
        int ret;
  F& k7 i  r& R) c0 [4 }#if 0
6 c, c5 d1 ]1 k: X- n5 W( g        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 U7 ]' P3 }1 V6 O5 v$ {) ~/ S6 u        if (ret)
/ }( |2 J" J4 \! i                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ S$ b. I% Q- [+ w
                                "%d\n", ret);3 A8 M6 e* v  z, ]3 m
#endif
  T2 u* c$ B. k: ?( l        ret = platform_device_register(&da850_evm_tl_leds_device);
% N  J0 l) M7 q; C. h3 d! |        if (ret)4 w) ?7 o$ X& ~- E; z
                pr_warning("Could not register som GPIO expander LEDS");
) M4 m( y6 J4 F; W1 E% s/ n        else5 `  ]+ B1 W% {  ^
                printk(KERN_INFO "LED register sucessful!\n");# k* _! H% m: k) l" X3 {

: A: t# e5 c4 L; O/ n( O# C" n+ {        return ret;& H4 I* U# v3 X# `, e
}2 e5 N& d( Q7 i# x

9 o. N0 Y) @1 R+ G6 k% S8 |static void __exit led_platform_exit(void)% W2 O" q1 S/ R& h- i4 c! i
{7 Z9 I! D' ~" N$ J- O1 @7 E" t
        platform_device_unregister(&da850_evm_tl_leds_device);+ u, p/ s/ W( K! s; A
# G, B& Q" V. @
        printk(KERN_INFO "LED unregister!\n");$ F/ f5 @) i' h) _, c2 d
}
/ b: U+ B' `0 z$ ?! v: E8 z( |/ r" {
module_init(led_platform_init);
: q8 Z- ^, X4 V8 O# omodule_exit(led_platform_exit);( Q8 D, L( w, Q/ N

: o" f" s. Y/ X# |! D( OMODULE_DESCRIPTION("Led platform driver");7 z( z$ ^' E3 a9 R
MODULE_AUTHOR("Tronlong");( n7 L  P" j' \8 F5 U7 w
MODULE_LICENSE("GPL");/ w9 m; o; }' p: B
' m" T8 k/ \2 ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-17 19:15 , Processed in 0.036455 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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