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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 q) L0 A5 l! X& a8 j; u/ Y- W
#include <linux/init.h>
+ D; k% b  Z' N4 v9 {0 Q#include <linux/module.h>& _3 N" J6 \5 u
#include <linux/kernel.h>
" }: B' {& J: k' G( L$ [#include <linux/types.h>
; m; _3 h/ ?( ?#include <linux/gpio.h>9 \& r5 f0 y' s) |0 V$ v. E. ~' g
#include <linux/leds.h>' a; Q0 F! a: R' g+ y' o
#include <linux/platform_device.h>
0 A/ Z' a" Q* p% ?: m; t, M6 e: f6 ]! L* z5 _  {
#include <asm/mach-types.h>. B" S( C: L( p" D' s
#include <asm/mach/arch.h>
4 c5 e, B1 \' u; k9 R1 s2 w#include <mach/da8xx.h># l' o% m  a2 _0 G! u4 @# O/ S% I
#include <mach/mux.h>
# S# O8 d% G  j2 M7 K1 R2 v! a8 D  {9 L. t1 V
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ W) M6 X4 y+ v3 {% f1 d5 }
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 k( P8 W- Q* i# q7 F% m+ z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ K6 k% m4 P. S1 ~# `5 w  o- Q+ A
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: }4 R# _! R" c" X9 w' R- s, k. Z: R: ?. o/ e
/* assign the tl som board LED-GPIOs*/
' i8 I& U' l8 Y# istatic const short da850_evm_tl_user_led_pins[] = {+ c# o. ^! Z. s
        /* These pins are definition at <mach/mux.h> file */- b& r" \$ l) i3 t! R: n! ]
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& w, C* Q9 y  ]
        -1
7 a1 K3 u8 _* r! l% l# v9 {};
! z6 c  N3 i" e! V2 ^
- _/ M; j. b$ n8 w2 i% M( {static struct gpio_led da850_evm_tl_leds[] = {1 A' X$ x7 _% R( T
        {3 h: L) O( G) r9 G9 t8 [
                .active_low = 0,
  F- h( D9 M6 G0 A                .gpio = DA850_USER_LED0,9 X4 D( ~  k# j1 d) t5 O5 G! R* I; Z& q
                .name = "user_led0",
  O- o: B/ B; Y; [                .default_trigger = "default-on",
1 `4 m) {# U9 j* b( C3 G8 _# n' F        },
0 F( O- H. A* q0 n; Q% d7 L+ P1 b        {' L3 j9 ]/ ^0 p  b2 }# }: Z6 v
                .active_low = 0,
# D! R) h! j5 N4 c                .gpio = DA850_USER_LED1,
, q* |0 x$ j; I) ?& S                .name = "user_led1",
2 U$ s5 H- {  J; l! R+ Z+ f                .default_trigger = "default-on",' g7 U" @8 h# A2 p- H; C
        },% i4 {/ X5 X! h
        {
  G5 ^: i/ M1 ?- H( A  D! H  {" l                .active_low = 0,5 |- K8 S" J2 E
                .gpio = DA850_USER_LED2,
& T* L) k* P* T( a1 o) X5 B  S" d' ~                .name = "user_led2",
& z& V- R  j' r$ C/ g8 a                .default_trigger = "default-on",
+ T0 R, R: @1 m- Z. l3 r6 }        },+ I7 p- {0 n+ I- z( u* f: k
        {
+ ^% A- b0 e* V+ F: T( K                .active_low = 0,
3 ^; z* N8 B& r7 ~- ^                .gpio = DA850_USER_LED3,
# x, G8 [0 X& A                .name = "user_led3",
0 e, s9 a5 H9 N1 \! M                .default_trigger = "default-on",
$ S8 a6 N1 h( F5 q9 w7 n0 W. [        },. Q, A6 y6 B/ |! z
};
! }2 [" J5 |. [9 J3 e$ `: M& Y. D& E4 P8 p4 q$ j
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, s* O: V4 X: C9 h- ^3 ^        .leds = da850_evm_tl_leds,
% _- c$ |  i! S0 G        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 l) n9 H$ M* u! D};
4 Y7 X" h& A' l+ s( F# Z
0 S* o9 e: L$ X  Fstatic void led_dev_release(struct device *dev)4 K3 o6 [5 B. \1 T
{- {9 z) I  L' q! [
};
2 u5 L$ G* b7 K$ U# i/ A2 q! h$ [& e7 b. }0 s1 N# n/ z! p6 K  J
static struct platform_device da850_evm_tl_leds_device = {
4 D3 i* R2 ~( w" g& m        .name                = "leds-gpio",2 ^5 ^/ S4 W6 S. j& Y
        .id                = 1,
. u+ F3 j1 U2 R        .dev = {
! K; ^/ S' S6 F2 W: L1 I3 t                .platform_data = &da850_evm_tl_leds_pdata,
) s7 N5 z6 g3 {) x                .release = led_dev_release,
4 U' g' @$ V7 y- N. s        }" y( h. {  B2 ?, P4 @* f: `8 v- }
};
2 ?3 \, T, m1 O! `$ ~& J* k7 r; r5 \( u) ]  W) F- Y/ h
static int __init led_platform_init(void)6 _; \+ p2 o4 K4 M- r  R  U9 J
{& [* Q9 B* C+ z( z
        int ret;% @+ C3 ]7 d# c, X; c
#if 0
& v; L) ^3 n* }* z6 `( o        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& Q+ M  V0 b% \/ p, r% D        if (ret)
3 l, ?; X/ R: W1 I: b9 ?                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 Q+ q2 p# [  v& \- S1 \% E
                                "%d\n", ret);, l8 ]7 \* j  t: c, I
#endif' S% O4 ?4 @2 c
        ret = platform_device_register(&da850_evm_tl_leds_device);
2 h! b( T: U2 m        if (ret)
7 ~0 }( z( T% v' `, P1 r+ }                pr_warning("Could not register som GPIO expander LEDS");! b2 [7 Q* y: x3 Q. G- ^: v% h; J
        else
1 {/ s2 V2 x& n9 c2 \, M                printk(KERN_INFO "LED register sucessful!\n");& x& H, \5 t: k. j
+ K/ f9 z* B; D! d: I& b/ O
        return ret;; Z; P) t$ `) R" x7 w! L9 I" M" T
}
7 M3 w& u- X; T7 x" a4 m/ W
! ~# w7 R) `9 x) _& m. @# ]2 O5 Xstatic void __exit led_platform_exit(void)
, h2 k+ C5 h, z2 [' i8 M{
5 F1 j* |. \7 y% t0 c        platform_device_unregister(&da850_evm_tl_leds_device);2 I/ k& l7 Y1 C0 \

% L, Z8 B# _7 [$ c* N' Y        printk(KERN_INFO "LED unregister!\n");& u# g8 D! k6 o+ q" A8 L
}% U( R$ |; z' D0 z+ W
# Z" K6 J! |7 m3 Q# y# b
module_init(led_platform_init);# M' H9 A9 o9 S! ?3 ?+ ?
module_exit(led_platform_exit);* K/ x2 L5 j0 A- f7 ?+ I

9 ]7 u2 W/ j) R- \* @' d  l' lMODULE_DESCRIPTION("Led platform driver");
8 x6 x% g( q1 j2 e) p* NMODULE_AUTHOR("Tronlong");3 F8 V, U: q& @6 U- B" a! c
MODULE_LICENSE("GPL");
4 w0 c8 P( G* b3 g. d" }9 Z$ d9 S5 |# R0 i0 w6 R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-1 02:58 , Processed in 0.039365 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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