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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 e& ^; c: K4 q$ s4 l( k. e
#include <linux/init.h>- w; G# Q9 Z  q( q2 s6 B( C
#include <linux/module.h>
4 b  h5 D$ h* @- N. P: ?#include <linux/kernel.h>
( y6 Q6 d. E& N#include <linux/types.h>
. K$ {/ L8 r% i# E#include <linux/gpio.h>9 E, t% h# v; G( C1 b+ L6 a' e
#include <linux/leds.h>
7 j! F, U8 ^" B! R+ z#include <linux/platform_device.h>
0 @1 E3 w% c# E! b" F" @, N. s' q# m" k8 z$ f2 A+ n% E
#include <asm/mach-types.h>. V# ^0 A3 f0 V' f* R
#include <asm/mach/arch.h>
( h" ^  Z" w, M: O) o0 V#include <mach/da8xx.h>
" V/ a1 ^- P6 [1 ?& ]' U#include <mach/mux.h>- k4 F2 K5 k# {1 F' ~& P4 j
4 k$ v4 U$ l+ }7 A8 a: O+ J8 a
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% k( e' G4 x6 W$ U* I
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( t0 a. q: m! L+ |$ A- W" z, ]
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 H) U) H6 h9 y( w. W( s2 e#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 r* ?0 d# w* p" G5 F$ _2 C/ w5 \9 G% r7 x: m
/* assign the tl som board LED-GPIOs*/
3 R0 R2 A3 k( M+ q# ~9 q" [static const short da850_evm_tl_user_led_pins[] = {
+ C' p- `* w+ |4 q        /* These pins are definition at <mach/mux.h> file */. s0 V3 E% G7 c. L3 S
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 {5 u8 U! T8 S$ l" N
        -12 u! v8 ~: D! s8 O
};
. u2 @6 j9 v" o1 f* ^
0 J* \; o5 Y. Y& u- n$ bstatic struct gpio_led da850_evm_tl_leds[] = {5 ^& {" E: U. b
        {( b5 p; Y1 o. }5 [2 W. a
                .active_low = 0,
2 D  b  N+ e9 }, p& z  g: f                .gpio = DA850_USER_LED0,
  S& p- ~$ H8 e4 O                .name = "user_led0",$ \6 F2 I& Q& U
                .default_trigger = "default-on",; ^2 X: V! R! ]4 I- J0 ~3 B
        },. o! P  w$ i$ O/ t% F+ I* K: J
        {
1 s! a/ v9 U7 i5 c0 w                .active_low = 0,
7 ?. L$ d% g7 A7 L                .gpio = DA850_USER_LED1,
- g$ M! G- \0 I8 h: u- _                .name = "user_led1",
5 q0 [/ U- j% x1 @" k! ?                .default_trigger = "default-on",
& a/ I, A! T/ F' C1 `6 B        },( t  I. `/ q+ |
        {. w7 t3 e2 v" N2 M+ }  p) f
                .active_low = 0,
, M3 y( C5 O2 n7 s                .gpio = DA850_USER_LED2,
3 Q9 ]* [. S* _                .name = "user_led2",
8 N# c+ o$ Y( c/ _/ z, E' s                .default_trigger = "default-on",
8 V4 ]7 P7 x/ c5 v, I2 k6 v        },- R2 q+ S4 T1 F) J9 r2 f2 X8 f
        {
' l6 o0 ?8 c7 C) w                .active_low = 0,
" J; b2 q4 J( A4 L: m" T                .gpio = DA850_USER_LED3,
  j# X# t% E) n! y                .name = "user_led3",
0 x& G7 o8 C, [4 \3 C" D                .default_trigger = "default-on",
- |0 h  b6 Y* ^2 q" K9 y1 y        },9 f4 p. K& F$ f# O+ W
};$ _+ y& ]# a! p* L! i* d1 H: l5 @

; T$ {1 i5 w0 w" H  S8 [# Z( Hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ a& ~$ p8 F4 `
        .leds = da850_evm_tl_leds,
7 O5 T6 X. h( p# ]        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& K0 o6 c$ e' D2 F6 I: p7 I};
9 d3 A' v' J! d; W" f, Q; A, j; _. ~/ N
static void led_dev_release(struct device *dev), r$ x+ G$ ]% q/ e; e9 x) s
{& J" d: G& [( K0 g1 P! Q
};- u& H% B0 _4 s9 l4 L3 q6 R: `

, \! s3 D2 b! A# lstatic struct platform_device da850_evm_tl_leds_device = {2 e; F! z- Y# m$ @
        .name                = "leds-gpio",/ b) I* q2 \4 j, X% w/ D
        .id                = 1,4 T; [, E3 b% _( B: I- i
        .dev = {
: L6 g1 u2 d3 _$ @6 }$ D& E! D                .platform_data = &da850_evm_tl_leds_pdata,3 K2 o/ _+ J3 A" A- ?
                .release = led_dev_release,
  L. S/ \$ q, u        }
, K% o: b1 i) O" r};
9 {" x' C2 `4 H  m/ ]
' ^* F; |$ `, W  _2 ?. }2 e6 H( Ystatic int __init led_platform_init(void). E, _; |6 P$ j: g( i" U
{( u* F6 }( J8 y
        int ret;) g" f- q% f; l! y
#if 0
( q' ?8 |7 P6 f- r) c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: V6 P6 z" ~& }1 L        if (ret)5 v0 h/ V2 z! W- T
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! Y# J! U% s3 N) N) I( u  H
                                "%d\n", ret);
# }: K. \: T" H2 ^' {0 G5 |#endif% k: L6 V: S# n  r' b" M
        ret = platform_device_register(&da850_evm_tl_leds_device);
" ?. l$ ^0 ?' }3 m0 v+ Q        if (ret)( i% _; @" M/ y8 e6 P
                pr_warning("Could not register som GPIO expander LEDS");
& _8 }0 }' q1 f3 a" s/ a# v        else
8 H* L% @$ u- a* S                printk(KERN_INFO "LED register sucessful!\n");' O2 Q2 K0 O7 k1 d# a  p  h

$ D9 f4 H" v2 O+ r; [2 z9 H* {6 t        return ret;% M: A7 P7 B  }& }5 s+ A8 T- P3 X
}! ]& _5 c1 o3 \% F

1 p9 S+ L- O0 H" N: astatic void __exit led_platform_exit(void)
" ~9 A: r/ R( b- U4 ^{
9 ]& b2 W1 z! G! E$ A. z6 s7 v3 I        platform_device_unregister(&da850_evm_tl_leds_device);
! N  ^7 ?) h( N% H7 Q. j/ U/ `) r  b
        printk(KERN_INFO "LED unregister!\n");4 s- P2 a+ M+ }  ~/ x' l, r
}$ v+ P1 M8 N% i

2 j0 k2 ^  y9 O( wmodule_init(led_platform_init);( X6 u. x" u1 I8 I8 s  F
module_exit(led_platform_exit);
: f% M; I8 P9 F5 s9 D, q$ J3 P& I- ?& _' x
MODULE_DESCRIPTION("Led platform driver");
( X; Y- [( Q# s  h& ^1 j* P7 L, G" ~MODULE_AUTHOR("Tronlong");) ?, W% B; t; J9 ~+ K# v
MODULE_LICENSE("GPL");
" v) o  n4 y! N
# y8 M: x  r7 I& Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 05:58 , Processed in 0.038587 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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