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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" H+ K# W% F% Z; }0 t6 F  [#include <linux/init.h>: A- X! W9 J5 e; m# V+ X8 l
#include <linux/module.h>% B7 K6 N+ X9 ^: @: D/ `
#include <linux/kernel.h>- S& f; Z' X. l# @' P
#include <linux/types.h>
- F1 y# R! d) p. O#include <linux/gpio.h>& J  s+ `9 q# x" _- D
#include <linux/leds.h>
/ h. u7 o7 K; b5 l( l+ W. G  @' y#include <linux/platform_device.h>
, y/ p# \) v- p9 T$ z/ \% p
+ i. k. F; L6 k6 a. d7 b5 ]#include <asm/mach-types.h>; P1 f3 R- Y# M2 W5 ?7 n
#include <asm/mach/arch.h>
$ W6 @  R* q$ F1 k6 h! s9 j. B3 E#include <mach/da8xx.h>: S5 K8 ^# m, T8 |" h3 T- g! o
#include <mach/mux.h>) ^4 E$ N% L2 {$ D% a& g' W$ c

& T. P6 W- A& c9 B#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); L. R4 o4 R! l
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ G* ]* |$ u7 @2 v5 V) R#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( a9 o# i- {* P
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 g; E* i1 c; {2 p( o& a' z! v0 H  \: z6 ^: W, `2 z! `# a# I
/* assign the tl som board LED-GPIOs*// N* v5 f% U! Z& o
static const short da850_evm_tl_user_led_pins[] = {
( T" E  ]8 `# f: D* H( f        /* These pins are definition at <mach/mux.h> file */2 h" |1 z6 z! Y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% B8 j( @2 I' [        -1
& {/ d( Y3 m8 V# ~% c0 c; p/ i};, D9 t9 U; p. o4 N, Y  ]
# D, Z; \. D- l4 o/ n$ E7 b0 Q
static struct gpio_led da850_evm_tl_leds[] = {
! J2 w. V5 j1 V/ B. c: {% v        {+ V' z# ~) }; A4 L
                .active_low = 0,
' @0 S4 _+ _) q. U5 k) s1 n2 r                .gpio = DA850_USER_LED0," a# w, i: V+ g6 \- U8 Q
                .name = "user_led0",8 P9 K3 y6 O% I) j
                .default_trigger = "default-on",3 E! D" w- n: ^# ~: z7 F
        },
# X+ H( H$ k9 ~1 Y4 d- O        {
2 ], e6 |% q, x' w& j2 d' c                .active_low = 0,
, h0 u0 z( Y" P: V, d( ^  W                .gpio = DA850_USER_LED1,
/ F8 b- d. E, U3 e                .name = "user_led1",
2 s/ d+ {! s: }: R8 v                .default_trigger = "default-on",: j. ?' H3 R" ~: J0 S) `" h
        },
% e' \3 V( ^3 x8 G: _4 x/ }        {* h9 s- F- `8 h% V7 P
                .active_low = 0,
/ [' D" N/ y8 ]* Y% n0 n1 h                .gpio = DA850_USER_LED2,% a) x" w& y8 z6 a
                .name = "user_led2",( w) |0 [' F5 P! k* T& J8 s
                .default_trigger = "default-on",( Q4 v6 ]$ K# ^% b% _
        },
+ @5 |6 z5 [0 Q0 \; j) \- B1 R: y        {- V: S& n$ Z& n2 P$ t8 }9 J% T3 d6 c
                .active_low = 0,
( H: W: _  M7 U5 u& y                .gpio = DA850_USER_LED3,
5 N# Z. d. w3 W* h                .name = "user_led3",
# T! o* D9 v: h" H; ?7 @) U: e                .default_trigger = "default-on",
/ S2 ^9 W1 [& J- o        },
  E. D. v* k7 [( Y# ^' ~};7 L' A, q" y. w( h" t4 D$ z& K

# {' M: _$ k0 ~$ f# istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! `6 ?* n9 n; y& d8 i        .leds = da850_evm_tl_leds,  R8 @1 Y! u$ @+ p7 ?2 K' M. g( x
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! Y* n& s6 i" E# t
};0 d$ v; [/ I- z! @% t$ Y. \
% `8 T& R4 l% L% Z6 Q
static void led_dev_release(struct device *dev)
1 W  i. K' H; J( \{
) m- a7 n, ~" Y4 N; M: O};: d. T/ A9 ]& e, f2 ~' C" N! _

; X+ D1 U& \: b& Q2 z# Astatic struct platform_device da850_evm_tl_leds_device = {
9 g! Z+ D  \9 y8 W: _# B5 e        .name                = "leds-gpio",
1 f- k9 I  C5 V, b  N4 s        .id                = 1,
; N( b; Q) {6 i2 [: j2 c$ k        .dev = {4 \) [% Q2 A: h; k
                .platform_data = &da850_evm_tl_leds_pdata,
/ o. W8 m! @$ F1 W( A; x  K                .release = led_dev_release,
2 i3 `/ _5 _5 R1 H! V        }
- y' E: y1 b. r6 ~8 X};
) {- N* K! v! m+ t$ W& m# U8 t
static int __init led_platform_init(void)
6 w2 h3 Y) z0 t5 U( Z1 W8 r# T+ ~{( u! e# K* N/ K' B9 I9 V7 k
        int ret;
; n6 @1 y; T) y+ d! F! @#if 0# g3 s7 k0 {1 a9 S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 X& R9 L3 ]7 {! M; P" z+ y5 [        if (ret)6 r- S; a& z! ^' z. ?
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# B' O! g- U8 H/ M* J                                "%d\n", ret);
0 o* C; W+ U2 ?$ i6 j#endif7 p+ \& q+ c$ y+ w# L
        ret = platform_device_register(&da850_evm_tl_leds_device);
  t3 Q% K4 J5 W- |+ x" q        if (ret)2 ~* s; y4 {3 v3 q( _# b& P3 }6 F% p, a
                pr_warning("Could not register som GPIO expander LEDS");/ W( s& @2 G2 {3 J: q/ e
        else
2 n4 E) w8 ~3 f, x% s4 g                printk(KERN_INFO "LED register sucessful!\n");
6 q# H6 e  k  q
2 d6 y+ X* N+ b* N7 [        return ret;
/ z/ T1 N# r! I2 b% G/ ]}& b! C$ ^, j" T# A  e
% ?. n. a6 e% _- S5 h
static void __exit led_platform_exit(void)
* R: V  G# K1 j{6 y' |- w* z7 T
        platform_device_unregister(&da850_evm_tl_leds_device);9 X  k1 _0 [' d( O& [: Z! o# }7 l
* j* j$ q$ y3 u" b( t
        printk(KERN_INFO "LED unregister!\n");
5 \% L" o5 V& t& c$ k* U}& r0 F  H' @7 A- \5 d* h
0 T1 ^$ q0 u' L) ~1 O
module_init(led_platform_init);; Y- M) k) o2 }/ v6 ^
module_exit(led_platform_exit);0 q/ s8 X% M9 p0 D! s3 W% _# m% p) r
# h( l* J- W% o/ f7 @* u+ n" F! M
MODULE_DESCRIPTION("Led platform driver");! j- t* j( X6 r6 {6 i
MODULE_AUTHOR("Tronlong");4 }* P6 ^1 ~0 c2 C! F/ ^! h' g. a
MODULE_LICENSE("GPL");
* R3 B2 X3 o2 x1 Y" p  G* t  V( k. N& S1 ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-24 17:49 , Processed in 0.045454 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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