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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; i0 A( m, B0 R7 I7 E0 I/ J
#include <linux/init.h>! K1 g5 I2 J3 O5 X
#include <linux/module.h>* F8 e6 f& _0 F  B
#include <linux/kernel.h>7 s" \8 p! [5 l- p1 j9 ^  C" l8 B
#include <linux/types.h>
/ D& N5 m5 y  W$ f/ \; D#include <linux/gpio.h>4 U& X# \4 A" B" Y  K% b8 q0 c
#include <linux/leds.h>
0 Z2 b, p6 {, O% q$ X1 l#include <linux/platform_device.h>
/ W) `# G; ]2 F% R! U9 Y) ]' k9 v9 V
#include <asm/mach-types.h>
+ ?; V* N5 V' ]. S1 J; I( B* Q+ _, H#include <asm/mach/arch.h>
3 L3 j, s. B9 n" L& |' `#include <mach/da8xx.h>5 P7 |' c; F% O# D9 W( A
#include <mach/mux.h>
/ Y4 |" L/ @! }0 j6 ~
  K) Y: f8 r8 z% B#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ i- y6 w, X' M) M/ h: f. H#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 T* ?- ?; I* w7 H% J" m0 U0 }#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
. O7 f' F" y0 q' s  w7 Z' W! s$ G: S- w#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! h2 R5 Q9 F# D' q! H3 H! H3 y+ n! Y' @: O. w7 q7 a% Q5 [* H
/* assign the tl som board LED-GPIOs*/
9 C  }2 E/ @! q; |9 p; vstatic const short da850_evm_tl_user_led_pins[] = {
: X  C1 U3 {" N8 p6 J  [        /* These pins are definition at <mach/mux.h> file */
% o' \+ P) R! c8 W# g# S        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 D: C) ]% i" }* S  N# Z
        -15 Q* Z# ?7 h8 H  e
};
6 D! h3 K0 \( s# m/ u. ]  v& Q2 {. V
static struct gpio_led da850_evm_tl_leds[] = {
1 U5 _4 ~0 J5 |5 Q. m) p1 P        {
% }3 H3 P6 f3 k0 I% O8 W* U; r. R% Z                .active_low = 0,
  f; X* t& O7 B" r* X2 m                .gpio = DA850_USER_LED0,
3 k8 k6 J0 q; f# b) g                .name = "user_led0",3 F) \& K% D8 P4 F  K+ b  g
                .default_trigger = "default-on",
. z0 O6 m& l& ]        },
! h8 z! y: z/ |+ P6 I2 c        {
% G0 e3 f$ k5 m; X% J; S8 ]                .active_low = 0,
0 Y) I) G  U! z/ r0 c( J                .gpio = DA850_USER_LED1,$ f# l# h! ?% {! f
                .name = "user_led1",
5 x0 B& L+ ]( G# ?! `                .default_trigger = "default-on",  v5 W, j) @9 s+ |: d+ d- V
        },4 {, v$ p  F5 W5 g
        {" S8 T0 E4 B- q: j& j3 H  h" o; e4 H
                .active_low = 0,
! j( B3 y" P  l# L                .gpio = DA850_USER_LED2,
# i) q/ Z: P! i/ f* Z# x) y. B' ^                .name = "user_led2",
! O% b' U8 C  r- U/ U: ~                .default_trigger = "default-on",, P) Y; _* t: p. J% F# D! D
        },
' r) u: w0 s3 G* {        {( h+ c1 `: c8 ~+ [; {$ a7 p: m
                .active_low = 0,
' S) |- v4 D# q9 ]0 L# G                .gpio = DA850_USER_LED3,% k( u$ q; w8 M6 C7 v
                .name = "user_led3",0 @* g& M% @" T9 [' W$ o, ]4 g0 i/ S
                .default_trigger = "default-on",2 r0 G+ z% ~2 A! k! ^4 s& s! ?+ f
        },
8 R4 w4 c' [% ^2 {};
  G+ t+ ]' Y4 c
# F7 O$ A& N( X9 r" z0 ~3 I7 @static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# K4 A6 z4 P3 y' o* Y5 r0 z        .leds = da850_evm_tl_leds," p) j0 m; O* o/ O- N
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  p& G2 X0 m% R5 D4 i$ _% Y};7 o# U( a4 q  p$ g$ k. B

: h9 l9 a0 ]2 P" e6 a6 Ustatic void led_dev_release(struct device *dev)
; ~, g$ t6 }5 a7 F{4 |  x1 c+ O+ }1 {$ Y6 }' ^2 H
};
: ~! w5 ?. Y) A, I! j1 X
# x  ~+ X; e) k7 z# |) rstatic struct platform_device da850_evm_tl_leds_device = {
1 D& g9 q% y$ W( `        .name                = "leds-gpio",
  F# R9 Z  \( \/ q' B        .id                = 1,
( Z& L2 [5 e9 Q( d9 k* o  h5 L' L        .dev = {
- ?* w* g4 O4 }) K1 {                .platform_data = &da850_evm_tl_leds_pdata,
& @5 Z& b0 C/ {* j                .release = led_dev_release,7 y2 U2 l5 h! Z% ?  {; y, s
        }4 g. q& q2 v8 Q( M8 t, D
};% V! t+ A7 f0 f# F! O- K6 |8 X
# \$ e& N* W7 Q+ T2 Y) y
static int __init led_platform_init(void)9 W7 Q" X1 _/ Y
{
# `& Y8 J5 M8 W2 R# m6 d        int ret;4 ~! C; P% W8 r" U  }3 m7 N  X
#if 0. b/ E. W. O0 t  E9 i% n
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 I& M" u! g- h' G9 i
        if (ret)
2 f; i) T8 ^" u) t# m                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 b% l8 s  Q# U, C
                                "%d\n", ret);
+ q- _  s) L7 H#endif; x9 j  }/ j# y- u0 Q( c( f+ e
        ret = platform_device_register(&da850_evm_tl_leds_device);
/ ?% f- s" _. [# Q% J+ A7 U        if (ret). X* L5 r% D5 ]. ~% c
                pr_warning("Could not register som GPIO expander LEDS");
+ M' H" I3 q- L  q3 F) G        else% d. ^! V  G4 o+ q* N" S0 I
                printk(KERN_INFO "LED register sucessful!\n");
3 g* e- W# a( c/ r3 U$ w2 h  J8 G$ d1 U) |5 Q5 w/ d
        return ret;& @- x- a  x% X. d/ b& S
}# l( N, H) y9 M" {' y
, P6 s" l  I1 h/ Z. K" V$ q
static void __exit led_platform_exit(void)
, c; y& N% c8 d! X: c4 B1 {# ?{
+ V: J' C9 T1 p6 o! M- `- y# {        platform_device_unregister(&da850_evm_tl_leds_device);
) d) C; }' h( `$ O6 e) f: p# Q8 L; M) f; \: O7 u/ S/ w2 `
        printk(KERN_INFO "LED unregister!\n");% n+ V' h, I  u7 k6 K( }7 p6 d
}
1 z/ M! `3 E5 k2 _' X
$ h# j/ X4 [3 {module_init(led_platform_init);
) `$ U0 c8 w1 [+ h% R9 x* m1 X6 i" Bmodule_exit(led_platform_exit);
1 p3 d3 z4 I, z3 U2 {4 s: J5 Z( k
3 a# v: k' x7 U" O, \) YMODULE_DESCRIPTION("Led platform driver");. ?( z! I& T: B- b4 T4 s
MODULE_AUTHOR("Tronlong");' c" z; j6 ~$ B- r
MODULE_LICENSE("GPL");
5 z3 s/ M' B5 v1 r. e, Y  W$ F" e! |+ F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-5 01:01 , Processed in 0.040513 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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