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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 \3 c9 r  d% D5 r+ M& J( W#include <linux/init.h>
: W* V$ \6 e8 a#include <linux/module.h>- u1 I0 F5 U' D- z9 g; Y" j* _( a
#include <linux/kernel.h>" h  e( [* T  b
#include <linux/types.h>6 t+ V6 m5 ~+ D# m/ P# \
#include <linux/gpio.h>. _1 N! X3 u& g: e# o
#include <linux/leds.h>
; H; t- t. F% E0 r  v3 x) n" Q#include <linux/platform_device.h>: c0 ]1 _4 e5 i5 L. Q# k: a- c  O

2 ^# r( N% g, ^/ O  X. A$ j#include <asm/mach-types.h>
$ J2 u  T) R, G# z#include <asm/mach/arch.h>
; Y" Y# E. Q" O' ~" T( @9 v#include <mach/da8xx.h>' e' L1 m4 S6 F  w. u5 d: [
#include <mach/mux.h>
0 S4 O5 E% P5 R' O* N' w. n9 k- o* V, M" Z, ]) j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( f7 V1 [1 h$ k
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% I6 D+ K" ?' K  i
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) X9 r+ F3 s! m
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 W9 `5 I& E2 N5 u7 Q
& v, ~3 F1 N1 c2 F; u4 m9 a2 K( h/* assign the tl som board LED-GPIOs*/
9 k1 x; G$ Y- V; L; f" w, D) s8 rstatic const short da850_evm_tl_user_led_pins[] = {- F) J, T" d$ Y( r, k
        /* These pins are definition at <mach/mux.h> file */
- `7 W" i5 ~/ ^0 u3 f7 Y/ A' U5 S$ w        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: J9 [$ a$ q. f: g9 f* L( O) O        -1$ f& Y- D2 k" [& C( |$ g
};3 u3 A, A9 a, ]. I
: \$ y- m0 z( g% @% X
static struct gpio_led da850_evm_tl_leds[] = {; v. K- v: b! k& ~. [# {) H
        {
4 `, @- _4 [8 V5 r+ B, q9 T                .active_low = 0,
" z" ]4 i4 j% _% {                .gpio = DA850_USER_LED0,
6 k, G$ ~' K" y0 M                .name = "user_led0",% V& E& `+ N& ]
                .default_trigger = "default-on",
, C; e+ H  _" q2 r5 f% h        },. L1 i. I( V' f8 ]$ ]% z
        {1 E9 g, o- `& i) g. l* D' s- M, e
                .active_low = 0,$ N; H; `1 B0 F( z0 c
                .gpio = DA850_USER_LED1,
4 U3 Q  N- h4 N& w3 D                .name = "user_led1",: b9 t4 i: b3 `3 h" {1 [& B& J2 b3 W
                .default_trigger = "default-on",
5 l( E% {+ a6 ~        },8 }/ D. U1 `) |9 `$ u# v5 |
        {
: T; ~# n& }+ B% ~7 t                .active_low = 0,2 k7 n$ S/ B7 R1 _) S' |
                .gpio = DA850_USER_LED2,$ L9 p( q+ |5 c
                .name = "user_led2",. v" ~+ f% F$ G* g( z. G( Z
                .default_trigger = "default-on",
6 M! Q; s: ^' Q& ~" j4 M7 _3 W        },
6 u) D& O; ]3 x        {
: i7 s$ Q* W6 m                .active_low = 0,4 t0 a) F/ C1 d3 `9 y& H: G" s- Y
                .gpio = DA850_USER_LED3,9 R- b2 F5 I- ?" m
                .name = "user_led3",
8 R8 _0 H4 E' f  P1 l( ?, n                .default_trigger = "default-on",) g4 g6 }$ q( I& f0 A
        },) t- e1 c5 D! I7 K% Y9 d
};8 ^: n3 U/ t3 F0 O% d3 H7 O
  ?% }% C1 k4 r' e
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! i; h: N3 m( I, ]% w% W        .leds = da850_evm_tl_leds,
3 S+ x7 D% `9 a$ |4 w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 u1 N! q" w" u4 U# h8 x0 n2 {
};
+ ?7 D, B! ]4 X& l: D$ y. R$ n: Z4 [$ V0 w$ k. g4 |8 Z3 P
static void led_dev_release(struct device *dev)
' c: U3 n4 p. A) ?8 E( @1 O% t0 C{
7 g5 {, x  \0 T+ S8 [% l};, ~2 `& I0 L" J" {
9 x. H4 R3 m+ k* L4 k
static struct platform_device da850_evm_tl_leds_device = {
1 _) U/ n5 b5 B. c6 R        .name                = "leds-gpio",
% D5 J" q4 ~% d) h        .id                = 1,
! Y& d2 z1 Q; P" q! O        .dev = {, t  ?. h$ H( ?9 F( V
                .platform_data = &da850_evm_tl_leds_pdata,# g0 J3 ~, B. T8 S
                .release = led_dev_release,
0 O% y/ |! g: T9 x! f' Z0 @5 j' A        }6 V& P" L5 L# b! Y( N2 e) n; w
};
4 F4 Y7 D8 m. e7 q, x5 D: d# G4 K! p/ v2 _/ q- O: G& x8 M  n- [
static int __init led_platform_init(void)4 C9 I! D5 K  s3 [
{" G0 k6 H3 ?! O' J
        int ret;
* o' i% ~# s1 D- |3 a#if 0
" }7 E* c8 e6 j& i& O4 s        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 T  u7 V4 i- R8 Z9 x
        if (ret)' X* b% K" X7 f3 N) O, f7 R
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( \8 b' P. {7 P, [2 a. s8 M+ `, r
                                "%d\n", ret);
( K" ?* @+ [  m  s, |* Z#endif
  l( K' c3 A/ ]+ D        ret = platform_device_register(&da850_evm_tl_leds_device);
; N5 u5 Q1 P& x3 o        if (ret)
$ B8 [; w- b% o( J3 k/ d3 q                pr_warning("Could not register som GPIO expander LEDS");
! G$ e* S8 i" k/ o9 T        else& [" w0 e! N* {' o4 ^5 _3 t
                printk(KERN_INFO "LED register sucessful!\n");) q7 D3 W" T% n2 c7 K$ a- z9 p
2 w' z0 ^% P. R5 U+ F5 O+ }
        return ret;
0 r. s! Q0 K* P: E& B}
- m1 y% X4 b1 s! O
8 C6 h8 O2 R. W# h% }2 [static void __exit led_platform_exit(void)3 z1 V0 u4 v: v& [; F
{4 Y% }" N% j2 e6 P! J& X: v
        platform_device_unregister(&da850_evm_tl_leds_device);
0 i$ q1 f* t! O" @4 x5 Y( p& V6 I9 o$ C0 F. X) B  C: k1 C
        printk(KERN_INFO "LED unregister!\n");
3 `8 y4 A1 D2 w4 p: {, R+ u}; K2 i2 `  o# W

) Y1 `0 X3 _) Emodule_init(led_platform_init);
7 _& J3 t( l$ Tmodule_exit(led_platform_exit);$ C3 b1 s) h: ^% b+ R6 c
5 |* P$ f3 c+ A# e' J% R4 p' r
MODULE_DESCRIPTION("Led platform driver");0 V2 B7 v. a2 U
MODULE_AUTHOR("Tronlong");
4 i; u/ q- |4 d/ ?+ HMODULE_LICENSE("GPL");5 @" _- Q5 e9 S# \& }

% X; Y, i5 q, ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-28 17:30 , Processed in 0.035368 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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