程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* a$ ~: r2 J( y- q( T" N; D
#include <linux/init.h>- T% l$ l3 {( A2 U  @' X: g
#include <linux/module.h>
: T+ g3 _# S( v$ |2 @#include <linux/kernel.h>
  o$ ^! B/ T) s6 O#include <linux/types.h>3 f( ~+ W  J; [# ^: C3 H! _6 K
#include <linux/gpio.h>
9 x  U9 O# a5 s$ D5 \2 R#include <linux/leds.h>. J- [, J5 b) L' h+ g! k* E
#include <linux/platform_device.h>  I+ P' ]& J. G% ~$ N6 ]
: V7 w3 q% g: y
#include <asm/mach-types.h>
+ L  O/ x( w2 x* A% g1 b* ^) G#include <asm/mach/arch.h>& f' z" S/ T4 h9 y" x: `
#include <mach/da8xx.h>0 v+ C0 ]6 n0 X( z
#include <mach/mux.h>
3 b4 L' ~1 j' x* f$ `: }3 Y. y- ~
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' g- \) @  ?# b& U; e( y6 t% ~% N
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 X+ C/ U% t$ q/ ?& g+ f2 N5 d  A
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 S4 M: |6 `2 l- V. L#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 `! H, R  ?% J5 u/ B1 L$ Y# Z) u3 a& u: W* S  }# _, ?. {4 A) Z
/* assign the tl som board LED-GPIOs*/
! C: b. G0 C( U( ustatic const short da850_evm_tl_user_led_pins[] = {
; F' ^1 J- @# H4 [        /* These pins are definition at <mach/mux.h> file */$ I. T& M) U* \/ K
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 H( ?  K& V% H5 _* x1 u* q; e
        -1
* O9 i3 A6 o" E9 F: r};* G- S# V% ?1 q6 U# C: Q+ e) r) _0 j+ m; j
2 ~3 g1 R+ e, U, r
static struct gpio_led da850_evm_tl_leds[] = {
2 K+ ~' F3 Q; O3 `        {& z0 R$ Y1 K7 j8 t1 P
                .active_low = 0,
  S- g; ^/ p  [                .gpio = DA850_USER_LED0,
( g; i: Y$ d; P( |' o                .name = "user_led0",4 g1 J/ [+ o4 h
                .default_trigger = "default-on",* u" @% w" r* ^) {  H( O
        },
; K" g( \/ c, |! d7 |        {& X- z$ O7 ^' C, k
                .active_low = 0,6 ~. X% }3 V+ L
                .gpio = DA850_USER_LED1,9 p  u1 }3 F' u& s, ]# \+ V
                .name = "user_led1",- `7 H% H5 Q5 a: d
                .default_trigger = "default-on",
" M4 q' V& r0 W8 _/ h0 r# U5 H" h; ^- r        },# v. i( ^% [' C% O$ W( R# w) R
        {  L2 I6 [) e3 `
                .active_low = 0,- v( n$ \& A! E- }4 v0 F* y
                .gpio = DA850_USER_LED2,
# ]+ Q7 K2 w' m, Y2 f; [                .name = "user_led2",# [/ n. [2 [6 u# r8 k; t; J
                .default_trigger = "default-on",
9 W) P& U6 U4 d' N        },
; p  g, T6 P2 o# [0 {* n8 v( \        {
6 t; L  ?2 N) \$ U! p' r* \                .active_low = 0,
3 Q# X7 i1 J' o. O& @                .gpio = DA850_USER_LED3,
0 y* v) F$ I( f% S) `- w: Z, ]                .name = "user_led3",
% M0 d, e5 ]8 ^0 M; r                .default_trigger = "default-on",
& j' N( S4 Y  s$ a        },+ b# A1 [+ Z- H
};- q( ]5 q) [. p- i* {9 l

3 w- j9 [4 i% w) x. ?- b% {static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ Z' I% E' A! ~& S7 `
        .leds = da850_evm_tl_leds,, P( `/ k( d( R* P1 k
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. f( V* [( M' {/ n};' _7 F& V$ W# V: H: N
7 R$ @4 S% H3 S$ I
static void led_dev_release(struct device *dev)
# T5 ^- b+ n& m( S5 T/ A{5 ]7 }  E: c$ o- b2 l
};6 f! O0 J! f2 C2 L1 Z$ Z0 [

* N  C' x0 w+ q; P$ {6 C8 Sstatic struct platform_device da850_evm_tl_leds_device = {0 m9 [  g. R" _* B% [
        .name                = "leds-gpio",5 p7 m, X6 P# g% [/ B6 a# y
        .id                = 1,
3 U8 V7 B! J& m7 N* R) |) R, k        .dev = {
" L4 r' m9 M/ Y. n9 R) i5 F7 ^0 v                .platform_data = &da850_evm_tl_leds_pdata," g; I% ~0 X6 X0 u% L
                .release = led_dev_release,9 D6 m+ C! a" A0 q& e5 V6 I5 l% z
        }
# U. i7 X  P0 Z1 q};: |2 s/ r$ F+ A& o' I/ C5 m/ W0 M
* y9 A* a/ j( n9 @
static int __init led_platform_init(void)0 O- V8 L# N3 i
{
4 E5 w, L: j0 L4 h# B7 G. e        int ret;
+ `  n4 H: @' c, e9 o# L#if 0
* _* z$ J$ ^& Y! t        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  \2 R: q/ f  t: f7 y0 @% v# ^
        if (ret)- o! N7 ^- e$ Q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% [6 Q8 w0 v+ D8 j9 M- t* S/ C8 y                                "%d\n", ret);
# @9 `% G$ F9 f+ R' s#endif- f7 }& a6 K1 @$ J8 U: l# r
        ret = platform_device_register(&da850_evm_tl_leds_device);
; a5 O- r; J- E; p+ j$ l        if (ret). z" M( [% Q4 A) r
                pr_warning("Could not register som GPIO expander LEDS");0 ^) j& u4 Q/ y
        else
2 ~6 A: Z% O0 N                printk(KERN_INFO "LED register sucessful!\n");
9 Q/ h) b/ R2 n3 E
6 \( ^: T7 ~% Q0 n# t        return ret;8 X. A) h" ?6 V3 p; W3 i
}- H1 j  V4 Y; v& o
  i5 C, w$ w1 I* Z3 J
static void __exit led_platform_exit(void). [$ \5 e" W. m
{; r! e# R+ T1 _9 X
        platform_device_unregister(&da850_evm_tl_leds_device);
, K4 n" U2 v7 H. C3 r' W" ^8 n5 v1 ~* A9 |% y, g* Q1 k+ b
        printk(KERN_INFO "LED unregister!\n");- G, l& _8 c4 y/ ], P5 a0 `
}/ u8 v9 Q7 O# l3 |  \2 a
# f+ E0 {3 I3 e7 N; C; m
module_init(led_platform_init);% [4 J  @8 T) z; o# f
module_exit(led_platform_exit);% L" p' Y8 d- H

8 G0 c7 l; U' dMODULE_DESCRIPTION("Led platform driver");- f' W, `! u, i; ^! y5 O
MODULE_AUTHOR("Tronlong");
8 V! `: S. N5 Q% pMODULE_LICENSE("GPL");% n) A! z. T- L5 m" K
) T: e3 n* j) i3 Y: L% I0 G* w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-3-23 21:18 , Processed in 0.039618 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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