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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. K+ e3 ~5 A& ?( M8 |: l/ E
#include <linux/init.h>
/ ~% i) H2 `6 Z* u& H#include <linux/module.h>
6 a2 R4 _  n$ f+ ?$ X#include <linux/kernel.h>
, G0 s: r. ^2 z% o! y; B1 }* V#include <linux/types.h>( J) V+ f- @, ~8 u0 H0 d
#include <linux/gpio.h>3 }9 F. C) R# L1 Q( C8 Z
#include <linux/leds.h>3 [* @: G3 c9 n+ R  s9 J9 b
#include <linux/platform_device.h>  f1 D7 @2 v8 I) K: j

9 n+ h6 s9 A' K) Y8 N- z#include <asm/mach-types.h>8 W  g1 a2 b" }! S4 k
#include <asm/mach/arch.h>
! Y. x  u+ ]' F. ^3 L' S6 E1 }#include <mach/da8xx.h>
8 I% [+ g  F' c. s#include <mach/mux.h>
0 H  K) t( r0 z
! F" f- N" `' Q( D# J! F6 @, W#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). d* Z& a2 O9 I0 M7 z3 [% Z9 l5 K: T
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( K! {) g. C. `' p: H% t% m4 a#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 N4 @- F$ g0 O" m$ m9 I7 X
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 q% Q# }6 |; |$ x! G" Z) C, @: p
: h2 y0 A. X% h  m
/* assign the tl som board LED-GPIOs*/% s" a- K2 n7 h8 |0 e( z# Z  h2 ~
static const short da850_evm_tl_user_led_pins[] = {
2 C/ J8 p6 D( b$ O: B5 E  Q0 {        /* These pins are definition at <mach/mux.h> file */( a* D, m/ ?6 Y) f. Y1 K& z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ m* z. p. x+ L* |
        -1
* J, a- P- X6 [};
( s- p1 M% M" @  q0 B
) [1 H$ Z9 F# S. J5 G% [7 |static struct gpio_led da850_evm_tl_leds[] = {- |" k; t. R* h' g- R/ J
        {( M1 f- t- y6 J' m5 {; z
                .active_low = 0,
" @* m" W% j; \0 a                .gpio = DA850_USER_LED0,) |0 p  y$ ]3 t" _  w* u2 Y
                .name = "user_led0",, [4 J+ h4 y! o$ ^* _% O4 g* U
                .default_trigger = "default-on",
6 K% j, M, k9 w1 i; `, Q" [        },9 _8 \; f! F) d6 p7 r
        {% ?; z: q  n& Q: i
                .active_low = 0,
" I/ s% ?% B9 M                .gpio = DA850_USER_LED1,
6 M3 j$ `% G. [& e3 K8 s0 Q                .name = "user_led1",, X0 y; E" M; T: N* o
                .default_trigger = "default-on",6 J/ }/ h8 F9 k2 W$ Y
        },# k5 g/ R: E% j
        {% E" M' \' d6 e9 z
                .active_low = 0,8 D& H( ~1 _" J: R
                .gpio = DA850_USER_LED2,5 X$ |' J  T/ y
                .name = "user_led2",
7 e! `9 U; J6 {" Z' v                .default_trigger = "default-on",
' ?* d7 X& e. ~5 }0 P* L% r        },; |2 ?7 y! X' A! K" M0 k; `
        {
2 S0 N; s% Y+ K9 N2 V                .active_low = 0,# p7 V( S, M# v. i9 w) D  J6 p; f
                .gpio = DA850_USER_LED3,
) b6 B6 Z" N$ S                .name = "user_led3",* I' r- ~. t) t% _3 R5 x2 y
                .default_trigger = "default-on",
" _0 e& K3 |) H9 i( {        },
% f1 f' r5 z2 g! T( @};
8 ^- ^4 T+ t' N; B6 @, F2 \+ u& F# o9 n7 h
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& ~1 n  T# O5 R! o  O# j! ]        .leds = da850_evm_tl_leds,
, ~" c; {7 [, I0 r/ j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  Y6 w5 m1 S1 ]" }& \};$ i; ?" ^6 G5 J- r9 \+ M/ l

3 ~/ U4 K6 z! B- kstatic void led_dev_release(struct device *dev)
9 s  B+ E" @* f; J0 M$ H. [; P{% V& y# L( L% B9 i7 m" D
};
) m# I1 r" _% [' n; q4 \" k: O* p; o+ }( u
static struct platform_device da850_evm_tl_leds_device = {
) e1 ~& }* X& Z; D- A3 ~3 {2 @        .name                = "leds-gpio",
; K+ p4 d' p; o- L" U5 @( `        .id                = 1,
% h" q3 O6 |3 C* x" t  g4 [% C6 R- T        .dev = {0 Z0 G% l( O" @2 T7 E
                .platform_data = &da850_evm_tl_leds_pdata,
1 B) L+ U/ K3 F, I, p1 `5 F  ?                .release = led_dev_release,; B* Z( u4 i7 ^, a# ^
        }
* H7 P1 Z( x. `1 w- V, T};
  n7 _7 d  c8 g: o+ B, Q6 c8 R( v# B4 C$ \- R* [
static int __init led_platform_init(void)
8 A, Q" M3 k6 P4 o' {{
* M, r: K: w/ q        int ret;
* h  T9 m) E$ v' q#if 02 n6 C, R. B6 D, D" L; R& F5 @3 E
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ d1 j5 h3 H. Z4 I3 T8 L9 x$ \$ \
        if (ret)/ |3 Y! a9 E% |4 l# J
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 m" M; @; J, t: C; _: S                                "%d\n", ret);5 z+ s0 f0 A* j1 Y' M; }
#endif8 [5 k! `! `0 ?9 v, ^; ?
        ret = platform_device_register(&da850_evm_tl_leds_device);
& `+ F6 m' K7 U6 s        if (ret)) p7 m& T+ Q% f3 l2 S' z
                pr_warning("Could not register som GPIO expander LEDS");8 h. a! z- L) g% h2 j
        else
% h6 m8 ~7 W( L0 j5 ~4 H2 b" m& b                printk(KERN_INFO "LED register sucessful!\n");
  ]9 ~2 H, s; a1 [
5 k% A! W! i5 i# P5 {        return ret;3 ?; h3 A; y( u$ z! ]* u
}
6 |$ B8 \' p( x4 m7 F8 C7 k2 y7 `9 M9 Q
static void __exit led_platform_exit(void)
" z, u* I6 H0 m  v1 I' \{. f  L4 Z0 R) C
        platform_device_unregister(&da850_evm_tl_leds_device);
, a! `3 C  Z5 C2 |8 k0 a
8 A- S0 F! n* P! j        printk(KERN_INFO "LED unregister!\n");
8 e) Y* I4 F' V' Q2 R}
  _- p6 B. G' R% q
: W) p0 g4 w/ Y9 a0 smodule_init(led_platform_init);; u9 t9 ?9 D4 P/ q7 L( S0 T9 H4 |
module_exit(led_platform_exit);2 Y# r4 w: h2 H
  b2 W' H* x+ {: r$ Z
MODULE_DESCRIPTION("Led platform driver");# G* ]/ K; N0 R; p& X. W; ~
MODULE_AUTHOR("Tronlong");
3 z5 z' w, e6 kMODULE_LICENSE("GPL");
: n8 g! G! q" @; Y$ O7 d: x. M- X5 L$ L0 u& P/ ]+ l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-6 12:02 , Processed in 0.039684 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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