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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% G4 x8 [, Q$ K( j0 L3 ]#include <linux/init.h>
& P9 [- p( i! @" z6 \9 f" h#include <linux/module.h>1 g* V7 i  a: d2 U/ F2 q
#include <linux/kernel.h>
7 @+ u2 W# F$ o1 z8 R#include <linux/types.h>9 V) p# I4 S! Y/ B
#include <linux/gpio.h>
5 V# ~& V) t6 k; n1 u1 p" Q% m# Y#include <linux/leds.h>
, @  X$ Y. T% K1 }, d5 p- C- q- F0 L#include <linux/platform_device.h>
1 v, q5 b% z0 ^- I: E: X% ^
! v4 ]& u# f9 N& h+ d# Z$ z4 C& m! {#include <asm/mach-types.h>
) I9 }2 X5 k& P3 A4 d& f#include <asm/mach/arch.h>% {' b# x3 [( t& v  D
#include <mach/da8xx.h>
  W7 a$ L- _# i" Y& G2 ^8 z#include <mach/mux.h>
+ U) a/ |2 y+ K* z: }3 \3 j, c0 ~7 C4 `  K" }
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% v& U9 D8 K) O" g7 R: _5 @3 w
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 C/ z  r+ }% V) E#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
3 r( |5 W* R- A$ [: [) B, z/ P' o#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ T2 f7 n" Y) z- @/ ]8 G
/ L1 v8 N( W! L8 @# H
/* assign the tl som board LED-GPIOs*/, r4 n/ T+ }2 g( Y+ B5 S
static const short da850_evm_tl_user_led_pins[] = {
" _0 }0 Q: h2 ^8 g6 M/ O        /* These pins are definition at <mach/mux.h> file */
9 t, w- ^3 |1 x; d        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 k+ `3 p5 k6 r" {8 k: A        -1: i  `9 Y3 X( A1 j5 A8 H
};0 Q6 e/ }) m3 J; `# ~- z# z
! a: x' W- N& A- W2 J) I$ C  s
static struct gpio_led da850_evm_tl_leds[] = {6 R% r4 }  a' e' j
        {
5 A" \6 D6 A0 D7 E8 Y6 Q( G9 d                .active_low = 0,
' W, @! H; Y  F' \8 l, }) i7 z                .gpio = DA850_USER_LED0,
- w3 h  S/ B2 G3 e! c- c9 W                .name = "user_led0",
) e3 m+ H% b% b  z2 x                .default_trigger = "default-on",0 B% A$ R  T1 J- ]
        },
1 J8 N& j" a( M, y( u        {/ I4 X9 |+ K) M0 _) _" a
                .active_low = 0,4 n" H1 ?; ~4 _" @+ q6 n5 w$ m
                .gpio = DA850_USER_LED1,
4 [' {" ]/ ~; _) U                .name = "user_led1",+ ], p: L. i5 u, G7 z
                .default_trigger = "default-on",, V: h8 I0 f  X: v" [: u
        },
5 m5 Y$ X2 }* v; Y$ o        {
, g- O" Z6 K2 e1 Z, C                .active_low = 0,
8 n# k5 }* w! U# {' U" M  e                .gpio = DA850_USER_LED2,- d" \/ j5 {1 X
                .name = "user_led2",+ z7 {9 y: H: F9 H  u
                .default_trigger = "default-on",
! r; y; J. H" N6 Y# q0 B$ g; m$ F. ^        },
' S2 t. f! b, f6 d/ v        {( `, n! X/ E- e5 [
                .active_low = 0,4 J. P$ Y% j* I# J) v
                .gpio = DA850_USER_LED3,
- S; {' v  r* j5 M                .name = "user_led3"," W, L+ i& c- u
                .default_trigger = "default-on",7 V8 R6 _' E, K: }9 V" a
        },
$ z9 Y  z5 G( I" u3 o3 p$ k};: K: Q" g( x/ ~
7 G" I% m- t8 K! q6 `, |3 Z3 t
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 O4 B9 |  `. h0 i        .leds = da850_evm_tl_leds,1 z) K3 g  e! c# {7 \, R, n# G: k
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! x$ x6 @% L; x# L; S) S
};
5 d6 k/ n7 x+ n# H3 F6 K: e' }, w) _' K, M" V/ Q4 l. _1 d) G
static void led_dev_release(struct device *dev)
: L9 u! F: g1 y4 ?( S4 r{
6 o- ]( v* }6 i6 Y* q! ]1 U: t};6 T% w- ]; d) f. I0 e

/ b& y& |( q: a  m9 z1 astatic struct platform_device da850_evm_tl_leds_device = {0 v. H6 m8 T1 h7 g6 e4 _
        .name                = "leds-gpio",# n" k8 ]- m) u  q% h8 [4 F
        .id                = 1,
1 t: E7 G7 g" A' b: `        .dev = {
- S4 [% s2 A% L$ B* x# G; H8 M                .platform_data = &da850_evm_tl_leds_pdata,- n/ C" v# s* ~- G( l! [& K
                .release = led_dev_release,
  C$ [' \. o4 e% S" P$ x+ `/ ]        }5 [" [( i: Z, u; Z
};3 @4 L7 a1 N0 U5 K  i' X' a( N
2 ?% I; _! X9 d* z1 A7 [
static int __init led_platform_init(void)8 }4 {& A, V* O7 T! g3 u
{
9 F5 I( O3 D7 f8 z, O/ t        int ret;
- ]+ O$ N- G+ i- o$ ?#if 03 F3 m: Z' E: P. z: F
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 }: _$ I- h( F        if (ret)+ i6 d/ C9 ~" W1 {! }2 f
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ O+ X8 q; X( F+ l$ V1 [& ]; w# M
                                "%d\n", ret);
, K8 G: D1 z9 F1 ~8 c% Y& U#endif
9 ?4 n% x' O' U: g: v        ret = platform_device_register(&da850_evm_tl_leds_device);
; a: Q* a3 B# X4 o' t2 B$ ?        if (ret)
# Y; Y' \' W" X: ~/ T9 l3 G                pr_warning("Could not register som GPIO expander LEDS");
! p, P7 ^' x. ?& P3 s& q7 i( _2 }        else
# U/ e% I9 m# i                printk(KERN_INFO "LED register sucessful!\n");: R+ S3 y! h6 g8 O% \4 P- a4 h2 U

9 J  q* t4 N8 z  x' V; q0 P( G        return ret;  T4 I8 I, b( D. ^4 F2 P; [7 A
}: P- M: z1 H8 r' k1 M
; T+ n  f3 ?( M- l1 j
static void __exit led_platform_exit(void)
1 e4 r" k; u# i. R{5 ?* ^8 B) P; T: x0 J7 C4 M. W' K
        platform_device_unregister(&da850_evm_tl_leds_device);
8 `$ x+ w" a5 K
8 S& }8 x# h% ?# j" {2 B        printk(KERN_INFO "LED unregister!\n");
$ p9 w9 d) E- `" @# s}
7 g% ~9 L4 g/ V
7 R1 ?) B/ ~2 p+ x# v; o6 }6 fmodule_init(led_platform_init);' `# D  `! i9 T7 y8 v
module_exit(led_platform_exit);2 {$ U& j* i9 c: k/ M3 E0 L
* [# Q+ B1 W5 L2 [
MODULE_DESCRIPTION("Led platform driver");9 F% B! R; F  j2 d1 X1 x5 N) b: z
MODULE_AUTHOR("Tronlong");+ o6 u# f, X- u3 E2 k, j
MODULE_LICENSE("GPL");) y1 V* L; T& {" R) W
' r. n- Z! @6 ?+ E" e/ c9 }& s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-11-10 02:38 , Processed in 0.046226 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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