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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" S. Y2 V/ Q" p3 |3 A% g0 S
#include <linux/init.h>3 ^$ W$ Q) M/ ]8 V' j+ |6 v
#include <linux/module.h>9 P7 X- R; p9 z; K) e5 E# \
#include <linux/kernel.h>! V& Y# X3 S; [
#include <linux/types.h>$ ]& _; M) z' v  a, A/ ]7 l6 u0 g
#include <linux/gpio.h>5 L: J- x/ g. @0 Q9 h! h% L/ g
#include <linux/leds.h>
" ^& A0 @, [- Y* C5 h9 k#include <linux/platform_device.h>
: Z9 z4 F4 V) y; U4 ^1 E! f9 }  x1 \$ H* p
#include <asm/mach-types.h>9 J0 e2 A) c9 v0 o! K1 R! l
#include <asm/mach/arch.h>; M* O0 v0 f0 H5 s
#include <mach/da8xx.h>7 w. X% ^; l+ H6 P0 ~
#include <mach/mux.h>$ d" N' u* p) L& \9 o3 E" G

# _, Y; U3 D/ x0 v' i) @! R0 K#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) D+ T# M, [/ o9 w2 ^  c3 e#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) G# Q/ @# x9 T, H
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 F* t+ V' ]; N# y# m; h
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) w0 P; u! s) d3 t1 t, n
$ c0 e* M8 [" r8 o3 ^
/* assign the tl som board LED-GPIOs*/  \& M1 v' q" i
static const short da850_evm_tl_user_led_pins[] = {
  A# k, I3 ]; ~, x* B8 t        /* These pins are definition at <mach/mux.h> file */
5 r9 G/ ^  F+ X3 [  ?        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 {6 @! ]7 d- C$ v6 G# A" p5 x
        -1
, Z) i! l2 w1 s};
5 }; S6 P: Z4 R0 `% G- y
  e$ L5 o2 D2 Y' Estatic struct gpio_led da850_evm_tl_leds[] = {, Z6 F: F8 }$ P3 C3 i3 P! K
        {6 A9 N) u0 {* P
                .active_low = 0,5 l: c7 J# z& c, j
                .gpio = DA850_USER_LED0,# W0 v" ]) V' O6 H! R8 C5 y. z/ w9 @
                .name = "user_led0",
' v/ K. |( B* v- B" j/ h$ J4 C                .default_trigger = "default-on",
9 i4 I) W3 q- X0 V& G1 {        },
% e' D9 F0 `  V+ f8 h" n        {  ]* @# F: [0 \3 n
                .active_low = 0,0 u# L( h3 Z) x3 |6 ~. S
                .gpio = DA850_USER_LED1,6 C4 S. x4 ~) D- n; @+ x# J
                .name = "user_led1",
  ?3 h) }! X* O" D                .default_trigger = "default-on",+ I& p# y, P$ s; a7 o
        },4 J$ l1 V. t5 Y% O/ M
        {
8 K6 J3 ]" J( i  R' w& P: b                .active_low = 0,
* w1 v! o1 j; _0 W, G; V                .gpio = DA850_USER_LED2,
; g9 R# C# U# ^8 ?+ Q& y1 X                .name = "user_led2",
5 {  S- ]+ n2 V                .default_trigger = "default-on",
$ x8 O# p" U* E1 ~- n        },! q4 o6 L& z6 g, `9 i
        {& q5 ?8 `( I# O9 _2 ^
                .active_low = 0,
+ ]+ I$ f- D# _$ D) b9 s7 v                .gpio = DA850_USER_LED3,
8 |* D8 X- s1 Z& \3 q                .name = "user_led3",
$ s9 [' @/ |% b. l  e0 J                .default_trigger = "default-on",
" [! j- i4 m- m1 j$ V0 W, a        },
0 V( g7 Q+ K; |% t* v};
4 X3 }7 k0 A0 G! d. ?0 W( g) Q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. @  g; h8 i( C0 w- n
        .leds = da850_evm_tl_leds,' y$ }! G. A5 q' ]
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 q+ z( O/ ~- n1 b9 K
};
- h* B; |; `) }/ E% ^1 b) A4 u. @0 ^+ E( Q! _4 }
static void led_dev_release(struct device *dev)' b" b  d; m1 r7 r6 P% o
{9 o' R# S+ V( z" n+ m
};3 T& q$ O5 y, p# s. Q# i0 t

- Y7 e4 ^5 _) O! G% Gstatic struct platform_device da850_evm_tl_leds_device = {3 [* ]6 Q2 M2 c. x; q
        .name                = "leds-gpio",: o2 [5 D) p1 F6 ^1 I
        .id                = 1,
# K; ]6 n0 }7 S* ^: [. {        .dev = {  i1 J- H6 l/ n' |( H. M2 Q4 Z
                .platform_data = &da850_evm_tl_leds_pdata,9 a$ E( g+ S7 N( n
                .release = led_dev_release,( C$ {# d/ @( ^
        }
4 y" c7 h3 F( B# h8 f};
3 ^$ Z, p( O! _5 J2 {+ W* L" j9 c2 H) @4 T
static int __init led_platform_init(void)
. Q5 g$ b/ p% i" x7 r* o% f8 m{
  Y* ?* n% M8 g" ~        int ret;$ ^; K' I7 T5 N% v6 Q& Q% c: r
#if 0) o' b0 v! j- Q  L( T
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 _0 q; e# r9 e' [        if (ret)" n, y! H# o' z% g- g( ]
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": Z" A# z' \5 m0 C. U$ T. f( [
                                "%d\n", ret);0 g# V) V! Y& Q& b3 z
#endif
7 v/ S% F: [. J9 Y  }" o        ret = platform_device_register(&da850_evm_tl_leds_device);
. N7 o* p) |. j/ q$ E4 H6 K        if (ret)+ B' L4 N1 S6 }% s, h1 C
                pr_warning("Could not register som GPIO expander LEDS");- V# v( K. W; J+ k
        else
' i) l  P, M* x" t                printk(KERN_INFO "LED register sucessful!\n");# X! Z2 o* b: l1 T- z1 _- |

  _5 W& z7 C: t/ Y        return ret;' ^" A9 z7 V4 e% V; Z- G
}7 U! E$ a5 X3 F8 t/ P( F

0 N. q- V  I1 m2 I  w  G7 Gstatic void __exit led_platform_exit(void)
( A' t2 j; V3 l$ N/ f! T; f6 D{
8 R* `  K& k; U5 h* J# U        platform_device_unregister(&da850_evm_tl_leds_device);
- I. a1 p( W: s9 L0 J8 s6 I; j# I: ~3 o
        printk(KERN_INFO "LED unregister!\n");8 `9 d+ {" s5 X' _
}. h8 k2 q8 p0 V4 g, a# s- a& o

3 ]- U8 I6 D6 P) u5 C& ]module_init(led_platform_init);- d& ~& f  W. f1 B
module_exit(led_platform_exit);
* a, k! g& P& p4 s/ _' n6 a: N
! u3 s) U$ V5 p) MMODULE_DESCRIPTION("Led platform driver");' `8 i# \8 R. I9 J0 k
MODULE_AUTHOR("Tronlong");' X7 g9 o" ~% L
MODULE_LICENSE("GPL");* k1 T5 ?6 v  V8 k7 o3 k

# m" T5 S' e6 _1 k. k2 {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 04:43 , Processed in 0.039947 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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