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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, A# h7 v" }: ?2 x/ ^#include <linux/init.h>+ \$ ]% q" ?3 Q$ b: V3 i
#include <linux/module.h>, _# ?8 h  Q. Y( [
#include <linux/kernel.h>
* {& E( |3 _0 i- w- j4 t#include <linux/types.h>
" t/ j- @* i' W* Y8 X#include <linux/gpio.h>
$ Z. g4 s+ `- A3 I#include <linux/leds.h>5 J+ ?( G6 ~" A
#include <linux/platform_device.h>
2 }* T/ C6 ]+ Y' t2 z9 I" u
/ d# `* ^: L$ k( i#include <asm/mach-types.h>
5 s& E+ u8 n8 J# K( s/ M#include <asm/mach/arch.h>6 @( E+ w. C, x& H+ i( N& H; R
#include <mach/da8xx.h>
; y; N" e7 ?# L  L#include <mach/mux.h>
0 @9 Q! v  \& T. W$ V$ t( R; B( e7 r! T2 \+ e5 H
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ X5 x  j) Q  \# ~8 @+ P& p
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 b  v- N* T* w) l2 D, n
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 I6 F+ p6 u) F8 {# X" K#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 w4 [/ I6 J. H. w6 F) v
: Q7 v- x9 m; _0 ~
/* assign the tl som board LED-GPIOs*/
# @0 E) f! g8 K6 K+ c5 G8 mstatic const short da850_evm_tl_user_led_pins[] = {7 C2 }% L0 `8 a
        /* These pins are definition at <mach/mux.h> file */$ k8 n# A; m$ P; p7 L
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& a' l# K5 a4 e8 v3 w; X        -1
9 q$ S( E0 w1 o& U  @};& E1 G0 ]: {( Y( n
! T" S' }7 I- ^5 l
static struct gpio_led da850_evm_tl_leds[] = {
( g( ~3 L- P6 L$ I$ U. f        {
  H6 ?4 u& n' x7 Y                .active_low = 0,6 T. h- @( ]+ E
                .gpio = DA850_USER_LED0,
, D6 \4 m6 [# n- R' @: i1 X' _                .name = "user_led0",
" N6 n; m" C& x# R$ y                .default_trigger = "default-on",3 \# I, a2 o+ f- l; p$ O
        },
/ J4 W; a4 F; W7 J% H5 w/ x$ E6 p' A; Q        {; d1 x+ y: Q* G/ g
                .active_low = 0,+ T2 ?9 D7 U! @+ z
                .gpio = DA850_USER_LED1,
9 C. u9 X3 P: \/ H# H                .name = "user_led1",
% X9 p4 S1 b1 @4 O0 u1 E4 i                .default_trigger = "default-on",
5 I0 n$ c+ x" a0 i7 q        },& ~8 Y# n; `5 C& y" m+ C: \. y
        {
0 ]4 S* b; p% d# b6 s                .active_low = 0,
: {7 ^2 W( d5 h% a                .gpio = DA850_USER_LED2,
- v8 b# m/ p4 [# X                .name = "user_led2",, C, p- t! O* F
                .default_trigger = "default-on",
$ `4 b: f; c7 n/ F2 {        },
6 U7 ^4 @2 J" F# J5 }/ z        {9 e& y' t# ^( M8 Z$ n5 u# h& U- I) y
                .active_low = 0,
0 N: {0 c% l( v                .gpio = DA850_USER_LED3,8 ?& T/ o9 m; L; f3 n1 \
                .name = "user_led3",* S7 L  ^6 t9 q, a, r9 _
                .default_trigger = "default-on",
4 j! G' o. T. }3 G$ W        },, H) O, x! n( ~9 W4 w. z; B& l- s
};1 M2 O) A3 J9 n& ~( ?/ `

: P1 d; ?% V0 Q9 ^( Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ w2 B) v5 ^; k        .leds = da850_evm_tl_leds,
- t! z% w$ e2 _: {* N, _        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 e! t( `: v5 F! x( U, H};5 s. G5 E' q* o' `! v! B: u$ n
; h& N7 x  n7 k3 ]5 L
static void led_dev_release(struct device *dev)
8 O9 ~: M: v# L' B# N{
- a& E4 }& ^3 T1 ^+ D};* D0 c: x% E  o- M

( u2 T! s- r8 x" i- r4 Hstatic struct platform_device da850_evm_tl_leds_device = {
& E; u3 @" H* v( ]  D6 U, G& s8 _        .name                = "leds-gpio",% r3 L0 a6 t$ E' k8 ~+ C7 K0 H6 b
        .id                = 1,# c6 r: w2 R5 F/ M7 l0 ?# c
        .dev = {1 U5 |2 G/ M- g
                .platform_data = &da850_evm_tl_leds_pdata,
; p; J/ {, K9 N, I/ K$ v                .release = led_dev_release,
5 X2 O$ p2 O% s' K* j% o" q        }
/ x5 J9 u7 v0 q9 r- \4 G};7 [. O4 U3 A: t* [! ^5 Q

7 W$ o: n; e. n6 _static int __init led_platform_init(void)
, _! @* v6 s* N& K: N! T{
1 Q; \  f# a1 \( ~        int ret;
0 S; U. w; u% e( j; f" K3 t#if 0" P+ A  Q6 d' _6 p4 R9 w! m! c
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& o# N% I6 a  s2 p1 i' V        if (ret)
. a- u/ G, E  C! n+ u                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": `5 c7 h5 X3 Y9 K1 s
                                "%d\n", ret);
8 o8 d2 R7 t4 n- e8 O#endif
9 W% Z6 _( \' {7 j$ T; p0 e/ R% f        ret = platform_device_register(&da850_evm_tl_leds_device);  f; j" Z/ v5 }. ]4 W9 C* Z3 E
        if (ret)
6 y7 ?1 g9 i" a* O) n' f, N                pr_warning("Could not register som GPIO expander LEDS");* ^# ?7 ^0 p# B9 P2 Z3 A! Z
        else
& O% L3 a/ j/ W                printk(KERN_INFO "LED register sucessful!\n");5 G' H. {5 J) p6 F
) `. ^& t' _% d4 Z( |1 s: u& S
        return ret;. y3 ~& [1 U% {0 r4 _8 F& O
}: d' t# a: }# g3 Z. c0 l7 {# D% K

% o# i! [% l  Xstatic void __exit led_platform_exit(void)
% f% M( {6 x; B& n- n{
/ h5 I; D+ Y; _' j' P* {; B        platform_device_unregister(&da850_evm_tl_leds_device);0 L0 I: t8 U* C  D9 v1 [; {3 N. b
$ D! i/ `! c" \/ M) A' W/ s+ M- K1 E
        printk(KERN_INFO "LED unregister!\n");
5 P. i/ X% H! B  C& n}- f/ b9 ~% a6 m! d0 K* r" G4 |& {

; ~/ P$ I2 j$ |" Gmodule_init(led_platform_init);" T( K2 I: v" ]8 \, E
module_exit(led_platform_exit);
; Y" R( E# f+ u# j  K, g; O' }
4 _6 w! F( R/ V4 h! c  B9 LMODULE_DESCRIPTION("Led platform driver");
6 Q2 s& X% U$ d$ `MODULE_AUTHOR("Tronlong");; s% N( ^; g! M+ G
MODULE_LICENSE("GPL");
& }' ~; R6 u! `) Q- j; ~. A" u; F# G- W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-28 19:01 , Processed in 0.040162 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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