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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 N7 Q" L) j# q9 Y1 l#include <linux/init.h>6 {: P3 ^4 [& e1 M8 H5 w' [& S
#include <linux/module.h>( r; Z- D; I& H* ~
#include <linux/kernel.h>
. k4 s$ y% W1 X% g9 Y6 ~* A#include <linux/types.h>' P$ H+ j* }+ u( f; ]% W
#include <linux/gpio.h>
. R! i$ ?( }. {#include <linux/leds.h>
" o9 B0 p) L( M+ K* P8 p#include <linux/platform_device.h>
% B7 e: F2 M6 G% b& t; G: f% r2 R0 v' e2 W  _% I
#include <asm/mach-types.h>2 ?. n$ `7 i$ k8 u
#include <asm/mach/arch.h>9 a, v# j- @4 I. Q6 a+ c5 z
#include <mach/da8xx.h>
  Z+ [+ F5 K: R* T0 P0 }0 f#include <mach/mux.h>
; {3 Z6 [3 Q( F  v: P5 Q& H+ q- |( n% G/ q9 e$ Y4 r$ m
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ z- h9 x5 {0 d* Y* A  P
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  m: L2 D: I7 Y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 y8 @, K! v4 ^+ n# M2 N" u8 I#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- o) u" v+ p- O1 M; D
6 V1 O0 r# }$ |0 F8 E& D) n5 ^
/* assign the tl som board LED-GPIOs*/& k/ Y5 s7 L; t. }
static const short da850_evm_tl_user_led_pins[] = {
! ~3 J- V: p) k1 r( s8 ^        /* These pins are definition at <mach/mux.h> file */
* ]* R) S/ v7 o4 h2 i        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. u0 d+ z4 H" q9 Q' `6 o- [
        -1% r3 u0 \3 e; r! ~; g& u
};
' d# N3 i; z, X- `- z! Z3 H7 `% C: s" X) r. A2 Q" w  U6 w0 a
static struct gpio_led da850_evm_tl_leds[] = {
  v  ]6 X& Q5 w; z% v% O! S        {& R5 f6 g; j, D1 C
                .active_low = 0,
; j: T8 W8 a- O# V. d+ j) L6 O! ?1 X                .gpio = DA850_USER_LED0,
% ^1 u3 V# G" o/ J: B+ m4 \                .name = "user_led0",
1 R7 u7 W9 ?0 _! R" i) N9 K                .default_trigger = "default-on",* C; K4 {! p; x6 I( y
        },
. N2 K" Y7 m$ T, e% h        {
4 |7 c2 M: m" F% Z" h5 ^. \                .active_low = 0,
: G3 u& d+ e6 A- H; V7 p) \1 [+ X                .gpio = DA850_USER_LED1,
# K. R" T/ Y6 E4 |( H                .name = "user_led1",/ i' K0 Z5 A4 E& q, D
                .default_trigger = "default-on",
2 o2 v7 @& ]5 g2 d6 K( ^  g        },/ j7 V0 g/ r7 \9 G6 B
        {
9 r, Y8 Z% x) m" c% ]                .active_low = 0,
" l( N7 Q1 D* U' ~1 ^7 K/ k1 H                .gpio = DA850_USER_LED2,+ k  S& @* Q% p, M, k
                .name = "user_led2",
  K/ @% D$ C3 H& c4 g- S+ n                .default_trigger = "default-on"," a1 k& x/ B" N5 T( F: G
        },3 n# m; m" z& ]8 E' R/ c. ~+ _3 z" a
        {
7 ^$ W0 J# L) ?) W' C* D                .active_low = 0,
, X1 N$ e. o/ f. A( A+ Z& \/ u                .gpio = DA850_USER_LED3,
/ H7 {0 B2 H2 A2 ^9 l6 O                .name = "user_led3",# n0 Y: W) Y; y  n, A
                .default_trigger = "default-on",
: z1 P* O( |+ a        },6 S4 Q& i9 _, X/ C/ A) i8 u" y1 K
};
7 Q  p1 C- @5 u2 U5 M- v$ W4 L; z
+ k: I* G( f3 sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! Q( h8 T' _+ O/ e! b- G        .leds = da850_evm_tl_leds,
1 B5 m1 h# z7 M4 p3 f/ w' G9 L; C        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ `4 l0 P2 G( J. J5 L) K};
. c- {' d: H) Q3 N3 w0 `
$ V" S; J1 ~* D1 Z8 C; w6 h9 ~static void led_dev_release(struct device *dev)2 n- Y) j2 m% o
{
8 c8 q, e# L! J$ }4 u( ^};
+ B& o) K/ {3 u& p0 q. {6 C
  m6 s! E- X6 sstatic struct platform_device da850_evm_tl_leds_device = {7 w( U. z0 Z) j
        .name                = "leds-gpio",0 O6 x1 ]& \4 v; o* G" @
        .id                = 1,
7 x! R) W! w9 P3 ]/ }        .dev = {, v# v( a, ^  Q' ?! o( `0 U+ t+ q
                .platform_data = &da850_evm_tl_leds_pdata,
0 t7 i6 ]) ~; h1 _                .release = led_dev_release,4 @' i; m2 o2 |% s& q% ~' w
        }" N1 w) u9 _! _2 Y9 F- Q  U
};
+ S* j% w2 g2 _
2 n  y7 a: U: l  S9 C! p* S1 }, m0 cstatic int __init led_platform_init(void)
- |, s3 o, w- B: T* z8 C{
* c6 }: a% C! X& v        int ret;! v3 B& K* |. s, Y
#if 0! E" \3 M3 Q6 @6 t: v/ S+ K9 g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 T9 J- U3 M2 P' m
        if (ret)% Z6 _+ E+ Z5 I- r- v. z9 B, H
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ A! v9 W7 D5 Q/ v) V; e2 |) h+ O                                "%d\n", ret);
  Z- `  R! a6 [" `* b9 ]#endif3 P! w& P! \( Z, V& e; ~" U
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 U1 J3 Q+ U6 i" |5 {# a        if (ret)7 k5 x$ j1 h( N* [2 V2 T; ]
                pr_warning("Could not register som GPIO expander LEDS");) q& O1 }9 W! f7 Y, `. q! z6 d5 Z
        else; O2 h/ b9 [( \/ ]. |' Q
                printk(KERN_INFO "LED register sucessful!\n");
! D9 w+ b4 v; M) S, w& u8 u# s- X/ g4 l1 n0 W0 w! V9 i
        return ret;
( V+ u4 J+ N7 g* ~}3 z* r# T  y1 R1 B& m

2 h; j% N4 E; t. M) O- T* |static void __exit led_platform_exit(void)
" i& m& E! o7 E1 Q{
' x1 N  o0 W" C* W4 f0 r        platform_device_unregister(&da850_evm_tl_leds_device);
  X4 D- f$ I; ~$ }; U
  J9 ?6 G( c$ p0 g        printk(KERN_INFO "LED unregister!\n");4 U  h  \% Q7 r2 l; n
}
* n0 j. ?, g5 k0 O/ ?  X! |: }, j# {! b% M, [
module_init(led_platform_init);
; i# C! ?6 @+ O) V) nmodule_exit(led_platform_exit);
3 q2 G) N/ L9 u! g6 q7 i; j4 ^% \8 g$ U4 z7 F
MODULE_DESCRIPTION("Led platform driver");$ s  O2 e8 C6 r- U
MODULE_AUTHOR("Tronlong");3 B  p# K+ m8 k" ?
MODULE_LICENSE("GPL");6 E3 X; X: A( G1 ~
0 T4 R4 M5 X& M- q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-30 05:38 , Processed in 0.035119 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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