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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 @: N* u& `% p5 R( b- V
#include <linux/init.h>
3 `" O5 O$ U. F1 N#include <linux/module.h>7 _  D3 b+ [0 o. z" O
#include <linux/kernel.h>8 q1 I" R" \4 s& g: ^3 i# X
#include <linux/types.h>$ R- v3 w$ P4 |4 P& k) _7 |
#include <linux/gpio.h>
  `9 ~3 U* y  h* [# R#include <linux/leds.h>
  R; b# L# E& @. Z! `6 `#include <linux/platform_device.h>+ P, m1 @3 Q) n! P+ |  @: C; b! L$ `

8 y8 n& R5 V3 q0 K#include <asm/mach-types.h>8 B  b8 r: q9 E7 U3 R
#include <asm/mach/arch.h>
4 @& |8 I3 c/ T+ s; j#include <mach/da8xx.h>
; o+ T8 t! Q/ O* C, j#include <mach/mux.h>
: G& I0 W: W7 x; B" b, \
5 _: Q: p/ v$ _( e8 _#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): @% q; s, W5 W
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 K; v  n7 |3 ^' n#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ |/ ?* b& [( X0 D3 x; K, s! p
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# j' _1 K+ T; v) H4 b* N2 F5 K1 @
' r! d7 S2 t+ Z8 _! T3 W
/* assign the tl som board LED-GPIOs*/; d/ l* P& X8 j& \6 ?: `9 I) f
static const short da850_evm_tl_user_led_pins[] = {
: y+ k3 ]  {: O4 Y        /* These pins are definition at <mach/mux.h> file */
9 N" K( S; E' o; @* {$ r        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 i& o" U- w5 I# O4 G- T/ S( T9 {2 m        -1# [: t5 Y# h' x4 r1 ]7 ]& {
};2 f! p9 T7 W6 N  p

$ ^9 B4 x& S1 C- j3 F) {static struct gpio_led da850_evm_tl_leds[] = {+ J9 E8 o% W5 A  F5 m8 \& p
        {
' R5 b5 y  H2 m( v                .active_low = 0,/ s! j  J+ S: D- {* E( u! U+ v2 w
                .gpio = DA850_USER_LED0,
* \+ T* a3 b' y. P/ P; @1 ]% ^                .name = "user_led0",
: T0 ~' u0 M+ r1 h$ B5 {                .default_trigger = "default-on",
+ K5 y! H, l/ G) O+ k/ f/ L7 Y        },/ c: {0 V# q; G4 W- }* m" V/ I
        {
5 U: E# N' `" d* ]* X% R                .active_low = 0,
% d, x2 K0 Z( ]. d( i                .gpio = DA850_USER_LED1,
3 n5 ~, {" i! w- j                .name = "user_led1",; g. P6 e  n! {
                .default_trigger = "default-on",
. [5 Z* |( \9 w2 ^        },
% G7 [% j' w  G7 r; N6 |        {
8 Z2 v* p' w9 i9 J4 @                .active_low = 0,
/ T+ L% J$ }& {8 @( S! n; E                .gpio = DA850_USER_LED2,! j3 S, b4 J9 Y9 {+ q
                .name = "user_led2",* B* f1 i7 r1 H; t+ L1 g
                .default_trigger = "default-on",0 L/ C" t$ q: ~8 ]- @! V% `
        },, g  ?# j0 Y  D+ G
        {
: \0 B* J  t0 f                .active_low = 0,
- p$ h8 q" P2 o                .gpio = DA850_USER_LED3,* Z- o: s  k0 ~5 v+ N* u
                .name = "user_led3",
( y6 ]2 P3 h( N) G; n6 O                .default_trigger = "default-on",
; ?) ~6 J7 _# X! W        },* O! x- x# p* [" r9 p1 J' r
};
6 F. W: [$ i- M1 S2 Z, A9 ~/ K* M! J" N* L. M" j
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 s3 H9 e. X( w% h1 p2 J7 a
        .leds = da850_evm_tl_leds,
: Y0 r5 M; F+ _9 N. t+ j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) j* K9 P" d) u& n0 v};9 P9 c+ N$ I& p) z5 \% ?
2 W! E1 ?% }: _# k* S( U/ Y2 s4 e
static void led_dev_release(struct device *dev)$ I# X5 F6 ^: o- _& m
{
& G3 ~- d/ t5 z0 j$ n3 F5 }9 g};
$ U) T2 x1 u! q6 J) a" e8 t5 U
static struct platform_device da850_evm_tl_leds_device = {
% h& r. g% k& `. b% x$ w& R2 z3 L" L        .name                = "leds-gpio",1 o& F3 Q4 S* w! r3 a" h6 p
        .id                = 1,
  @* P( L5 C0 {" ?$ ]        .dev = {' r( S+ K" y+ n# k" ~: a  d2 j6 ^
                .platform_data = &da850_evm_tl_leds_pdata,
) K, _* k: H( x                .release = led_dev_release,
1 U! g; j/ Z/ ^6 G7 m( b        }. c% Y( D6 p7 z/ Z1 n
};, W" y6 s! }9 `8 {
& O% @3 z: n7 }# Y" T# W3 w' k
static int __init led_platform_init(void)0 w& f) d7 Q! J* H' L* `, M/ h. @5 M
{
! `, B( o  M* `4 Y0 q        int ret;
5 G+ _: l2 k# V/ H#if 0
) _, i/ e& O$ j6 s3 X$ j( u        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 Z. p  V! I" C, E/ |        if (ret)
# ~7 r" w6 @# s                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 X6 H" s" {( w" w2 R: y
                                "%d\n", ret);
2 K% h6 k* B. C#endif7 D5 @! j/ z" `1 `8 F; Q* W
        ret = platform_device_register(&da850_evm_tl_leds_device);
8 \: \/ E( n' L/ g# k1 P        if (ret)
& U& t/ e+ q' {& M                pr_warning("Could not register som GPIO expander LEDS");
5 t; h! L8 }% R0 J1 d        else: j" @% r4 v) ?: V
                printk(KERN_INFO "LED register sucessful!\n");
, C9 h% O( A) U$ e& T& V  N  b1 h, E. @2 L# Z" z
        return ret;1 T( s: H2 G( f
}
$ M9 Z. _. r: o( P2 t* ~& K( N5 H4 o2 M* v8 ~3 V  D! I
static void __exit led_platform_exit(void)
. @! A/ Z! ?- K* W# A' r{
" Q. ?8 e+ [/ _# Q- Y        platform_device_unregister(&da850_evm_tl_leds_device);
. \$ t1 E5 v+ L4 Y% @8 g; m5 ]" _- e' [4 R1 j# o9 _: l
        printk(KERN_INFO "LED unregister!\n");) \" O7 L3 @5 K) b) D" S
}
0 r4 Y; `' Q* j( v! l  V/ z
' ?+ Z  ^( F/ `5 I1 {9 A  N( Y8 ]module_init(led_platform_init);7 f7 |; L3 P* K0 Z1 w
module_exit(led_platform_exit);
& D! o9 b7 `8 d7 v; |" d$ n
% d5 }$ x+ V2 G1 lMODULE_DESCRIPTION("Led platform driver");
' U* F8 G( o, j3 u3 JMODULE_AUTHOR("Tronlong");
2 n2 _* }8 S' w, l5 n' E+ WMODULE_LICENSE("GPL");4 D1 V1 l1 k% d

* K1 ?3 U. }; l+ C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-13 11:57 , Processed in 0.040449 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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