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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  ~6 f, J. O" H6 `7 Z
#include <linux/init.h>
0 \# i+ P6 Y$ ^5 A# `#include <linux/module.h>" ?% \( l$ b9 o7 u1 N! Y9 d
#include <linux/kernel.h>
1 ^4 L" n8 e* M) Q#include <linux/types.h>
4 e4 Z5 k9 v( @#include <linux/gpio.h>
5 p3 K0 z5 z" \/ k, R+ Y2 J3 p#include <linux/leds.h>
" C. E/ t2 z6 ^$ L#include <linux/platform_device.h>
- Q& x* x) A! T$ L; e& D8 M/ ]) S3 ~" j, I5 G; a% T
#include <asm/mach-types.h>; Y. E: k0 w$ y) X- N8 H
#include <asm/mach/arch.h>2 T1 T1 v9 H1 z9 n: @9 ~; ~
#include <mach/da8xx.h>$ y$ X; A1 E9 @- c/ g4 h  C
#include <mach/mux.h>
+ H4 T$ }2 |3 h$ K  n/ I" k4 o' S6 i8 _( }9 s) c5 z6 U* ^
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): O+ k6 ~, T- v) k3 N" q8 z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; H7 S2 |6 `; c+ r#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 ~& g$ s& ~8 ^" W/ h
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" |1 p5 h- Q* q
6 C% o: S* W, L6 D/ }6 I/* assign the tl som board LED-GPIOs*/
, v7 z8 n6 e" ?* T& _  l- j6 Hstatic const short da850_evm_tl_user_led_pins[] = {- w+ Z" B$ W% B1 c6 q
        /* These pins are definition at <mach/mux.h> file */
( f$ v# s0 U; a9 r8 P$ }2 L' [        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 p) _" U( Y5 b
        -1
+ F! _( x4 @+ M9 h3 t# h};
1 r* ?* Q7 P/ c. H7 n
$ J1 ]0 I& ?1 D( D. E3 j: J* Estatic struct gpio_led da850_evm_tl_leds[] = {9 `: I8 P4 _, _- O1 D6 @2 Z
        {8 s. L% L, |: \1 `1 x: j, @7 R
                .active_low = 0,
0 @# M. S$ N1 F                .gpio = DA850_USER_LED0,; W8 U; R; _7 e% P( ?2 g
                .name = "user_led0",
( z+ V# e. y0 `; ]+ n1 c# x                .default_trigger = "default-on",
# s, s" f- C( Z$ |" Q        },* ]( W- y$ ?& ^. W! g; _9 Z8 d! K
        {( y- S2 T. p/ t4 I# F
                .active_low = 0,% y3 F  [3 x& K) R+ [. k" e7 x
                .gpio = DA850_USER_LED1,) N  y# o9 V  x) ]- o* j( m  H2 i( X
                .name = "user_led1",% T* a, Z; |2 {$ _
                .default_trigger = "default-on",, ~& m! r) {( F: k+ y
        },' X9 p& T9 ]' @$ E- E" X
        {
6 F  l! p7 ^6 q- J, m                .active_low = 0,
  y' j6 d& a  S                .gpio = DA850_USER_LED2,
  Q$ M1 z# F& c                .name = "user_led2",
6 x$ l. ~, c8 Q1 K# s5 C                .default_trigger = "default-on",
7 e$ T, c8 \7 K7 I. ^6 P/ n- }. Y        },
% V8 k6 t& o" H8 z2 L0 t/ o        {
0 D/ u+ u0 V% F* G5 E$ S2 y                .active_low = 0,( N. J3 ^8 t( J4 l# i# q6 I/ d8 I: e
                .gpio = DA850_USER_LED3,4 N8 }! ^$ i! a& {3 A/ c
                .name = "user_led3",% L% Q% ?* t' Z" C; i2 u4 I! J
                .default_trigger = "default-on",1 X# |) Y! a% u4 p2 T
        },. U0 o+ n' {) U; p8 d, ?
};' n7 Z( A5 ~- f& q6 p

; z7 X0 W4 C" H; Wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" f8 r9 c1 P9 `7 s9 A2 h7 r
        .leds = da850_evm_tl_leds,
3 r/ |4 y$ ?# u7 s/ h9 P        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ l8 O7 j# \! j: Q$ f# i};
, X# Z1 c2 n) j. q
( r" I- V6 E# q* I/ Istatic void led_dev_release(struct device *dev)
, m6 \& ~  i3 e/ ]. Y{
" T9 i' A+ T( L9 `};+ h$ Q0 S0 n5 x# A& U5 j
6 _* Q( E$ G/ B
static struct platform_device da850_evm_tl_leds_device = {7 @4 `" {, g: b" x# g1 |' a7 I2 |
        .name                = "leds-gpio",
, n/ [! {" w, B5 O3 k1 b        .id                = 1,
$ M, T' ~4 l4 m        .dev = {: h" }* @& @- F- M: F  l
                .platform_data = &da850_evm_tl_leds_pdata,
8 T0 \( h) h+ o# O% O                .release = led_dev_release,/ m! C3 e7 l5 o/ z
        }5 Q3 Y( O8 k; T( g6 c
};$ G2 s* y& w3 U  A8 b3 i# _, ~
$ }+ p' f0 b. d; `: r# d/ g+ O4 p
static int __init led_platform_init(void)
/ i5 E% m  B; A/ @{* W8 V7 a- ]: o0 ?
        int ret;
5 D* J( x7 c. f+ F; h3 F# t5 e#if 0
" {; R/ M/ R# m) K        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# X5 [+ @$ A7 M5 X+ @: o. S
        if (ret)
2 c3 F3 J: S8 q* g0 Z% p                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 {$ i" ]7 I3 l, k$ L: b! ]( Y                                "%d\n", ret);( u' U7 E1 l2 V* O% P8 ?7 |
#endif
% |7 j: y+ N9 o7 X        ret = platform_device_register(&da850_evm_tl_leds_device);  N! U* e( _. `5 B; `/ S+ O- O
        if (ret): F2 \4 q2 D5 v; S" Y5 ]$ H) p' c
                pr_warning("Could not register som GPIO expander LEDS");
# X, t- U4 U& p5 L4 i5 m& N        else. b9 C- X& O- i  f
                printk(KERN_INFO "LED register sucessful!\n");
% u4 \" m8 E, |  H, |& e5 @3 N; `5 }0 I- P: g" e0 J) b+ Z
        return ret;
9 Y7 C5 Z! M7 R3 w4 p}, w% f5 Z% d7 F" Z- ~% T( V

% r* e* ^: v6 u, N% cstatic void __exit led_platform_exit(void)
' Q/ [/ `1 _! D* Z2 z{6 O; ]2 H4 ~* Y% E  S& D3 `# W
        platform_device_unregister(&da850_evm_tl_leds_device);
3 r( u1 p( \* c! o9 z
0 w2 l7 C+ w1 A7 ]$ x+ {0 f3 w        printk(KERN_INFO "LED unregister!\n");
: ^  H. ~/ r2 ~3 Y- ~  e/ g6 G}  c+ L( [9 A3 D- ~. [
* {5 X# F: W4 ]
module_init(led_platform_init);" K: f- ?5 a0 ~8 H9 l
module_exit(led_platform_exit);
* t) s6 f( y! k' r
5 p4 v6 R' V5 X1 O' qMODULE_DESCRIPTION("Led platform driver");7 y4 U6 E) n3 v! A9 v% f( Y: \1 }
MODULE_AUTHOR("Tronlong");
# @3 a& K5 q/ X/ L$ ~MODULE_LICENSE("GPL");( H3 Y% F3 \4 Y2 Y, d+ A
; s4 W9 L" N) e+ R  X6 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 14:08 , Processed in 0.048113 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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