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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! _, s" C% t" @* k, x#include <linux/init.h># K5 N& w3 ~" ~" W+ _9 ^# v7 l1 ^
#include <linux/module.h>9 _: M& v+ U1 \# f# g
#include <linux/kernel.h>: p, g; R9 p# ^1 C6 \  [
#include <linux/types.h>, p/ B, K! B1 |5 z% Y
#include <linux/gpio.h>- J7 r& T- D" }5 [; }& E
#include <linux/leds.h>
! P% e. O& L& i6 F#include <linux/platform_device.h>+ @1 E# s. G( `* |4 w" C

% h1 y# @4 ~6 i. _2 }#include <asm/mach-types.h>( l2 l' n$ L- N1 U& o
#include <asm/mach/arch.h>
$ d0 R! q' c. D$ ?6 G( j- F#include <mach/da8xx.h>
) P3 z. f: A$ _: B( r: b& ?#include <mach/mux.h>+ Q& P, V! B' h
) D5 D9 k6 J! V! }! K
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 a6 ^- U$ O$ e0 Q# R5 e
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); p9 f- d0 f: Q  q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), P+ I' k  `' k) H7 P% z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 |: D, x3 n/ Z% w0 F- D! q

. z8 N5 B! ?1 v2 v1 _3 k( t7 p3 U/* assign the tl som board LED-GPIOs*/
8 Z; G1 F1 a" N7 Vstatic const short da850_evm_tl_user_led_pins[] = {
+ a2 Q) x4 g- {& W- {1 ?        /* These pins are definition at <mach/mux.h> file */( M' B$ B: I9 a( D# t
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; {( n: x! C/ e" f+ d* c        -1! C, |! b: Z9 L) U0 ?5 A
};
* q* {, V% _7 B, T! `1 g' b  F. t7 a7 D5 f
static struct gpio_led da850_evm_tl_leds[] = {
* W& A. K* U& w1 q        {
9 d! W. Q9 L! k                .active_low = 0,
' j: e0 |* h/ ~( N                .gpio = DA850_USER_LED0,
8 q& P/ c* n4 l) S; K$ O. ]                .name = "user_led0",  G0 V. U. M4 L/ U' Y
                .default_trigger = "default-on",/ L& C; k" A! m* Z3 l% g0 ]
        },
( A) O3 ]" X) l        {. \! w" l$ w( B" Q3 ]; H4 M1 @
                .active_low = 0,' R8 D7 [) X) h% m$ L- X$ F
                .gpio = DA850_USER_LED1,; ?' b0 Y& X. W; |4 H
                .name = "user_led1",
+ E9 i$ v9 J+ H" a3 Y                .default_trigger = "default-on",
0 K/ k% @& ?1 d. v5 c        },/ e$ D4 p& Q8 u0 u. N6 t! T4 F
        {6 ~* J4 t+ n" ]8 W
                .active_low = 0,
( V( C/ T7 J5 O                .gpio = DA850_USER_LED2,4 ?8 M9 ^0 z- l* g; `
                .name = "user_led2",: \1 r% }) d, p* \! c
                .default_trigger = "default-on",
2 P9 _, h4 O9 Z# |        },
- M9 C" J; f0 d5 }8 f! i( y4 Z        {
) ^' P1 T5 Y  @8 T. }2 d                .active_low = 0,; j5 H% L; l- s5 D  C/ S+ X/ R4 n  l
                .gpio = DA850_USER_LED3,
; B1 x8 f8 y( |' i3 g                .name = "user_led3",
/ p, }: R8 r& ~5 n& z5 }/ D7 J                .default_trigger = "default-on",
5 U! [3 Q5 Z. T" Z        },
  m% L& k& v! Z' W1 G% _" H};
6 D! L7 _( k/ v2 l& `) f7 M4 b# [, @- i
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 }  c2 Q) L" S        .leds = da850_evm_tl_leds,( i4 K% I& o7 g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 K8 B- |; O3 Y) `" l& [};
8 h. m0 U7 l: E7 T
/ j9 n5 x! a$ }- Ostatic void led_dev_release(struct device *dev)5 g4 k( v# S, V0 P" F
{, ?8 c7 `. s, |0 ]6 P0 O# b3 X
};# T* O; B1 V% Q9 w) m

! u  w& p: e# b* y3 n6 }static struct platform_device da850_evm_tl_leds_device = {
) C5 ]# j& d* }; K' H" z        .name                = "leds-gpio",
, U! k, G" M! U* `' @8 A        .id                = 1,1 S9 \1 f' U7 R) M& Q- d
        .dev = {( e& P+ {) s9 m) ]3 N
                .platform_data = &da850_evm_tl_leds_pdata,
" ?0 ~2 |9 e( a2 X7 W                .release = led_dev_release,
1 ]( W2 T5 L: B) v        }
3 I/ Q# E2 b& I% w};0 {6 H5 I% d* I. G' v

# ~! a) D2 g4 n* @static int __init led_platform_init(void)
: q8 L/ ]- c' Q9 t5 l9 j{
/ }. ~/ J/ m0 S5 o1 Z7 h! U        int ret;
- E7 s: B% l5 N) P0 z' s#if 0
( x$ K2 h7 Z. K        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 I4 D- y; |4 y        if (ret)& F* D7 E2 s% |; x/ ~6 X  n. l$ x
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( M; @& X7 w  X2 m1 n* z- ^' o
                                "%d\n", ret);! y- k" _- p! F9 L+ A8 j; A8 O2 \
#endif% i( b. S4 s& C
        ret = platform_device_register(&da850_evm_tl_leds_device);$ r7 M# z2 c+ d: G) q8 M
        if (ret)
+ R; k( P0 y" r9 U. R$ K! U                pr_warning("Could not register som GPIO expander LEDS");
" B& U/ Q0 k. f; T  z8 @        else
7 v% ~; M. K+ G' a% u. R2 p. g                printk(KERN_INFO "LED register sucessful!\n");
& e0 f4 k4 {( K5 H0 f3 n/ r5 Q0 @) p! x  m; Y. h/ S
        return ret;
: u" x$ [) K; w  }; p4 c}
  W0 @, O* `$ o# `: a7 P6 l5 l8 p; `2 p# p  ^' N& ^
static void __exit led_platform_exit(void)
% l5 z5 ^5 z8 N! j  F2 @{0 ~  I+ P6 `2 D9 m& l1 {
        platform_device_unregister(&da850_evm_tl_leds_device);$ K6 P9 Q6 `" T4 w# t/ V+ b
* J  G" `$ k: ^% R. C
        printk(KERN_INFO "LED unregister!\n");
  c  O) T& O; }. Y% m}- ?, I- U; {; M* ~- E/ j/ t

0 ]' G4 f7 V2 k+ kmodule_init(led_platform_init);
. l! N; e; w6 P5 emodule_exit(led_platform_exit);! c; J. e6 `/ c8 L% v0 g8 O7 s
( ?, Q! a5 F; X8 o3 V# C
MODULE_DESCRIPTION("Led platform driver");7 |/ g& C7 V$ h& {& Q
MODULE_AUTHOR("Tronlong");0 R: W2 s, m  s. d
MODULE_LICENSE("GPL");
% G, h3 k& M) p
5 z* g/ P) q) b2 T  W2 [! p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-8 06:25 , Processed in 0.035569 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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