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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% S2 d! F. [0 V, J( L" L
#include <linux/init.h>/ `: M! g9 X. `2 p: H" o( C  J4 Y( R
#include <linux/module.h>) N+ p5 G5 d5 V% @
#include <linux/kernel.h>
* j, @8 V7 v( L6 N  F) H#include <linux/types.h>& D/ v( ]: q/ y! C8 T
#include <linux/gpio.h>
2 ~4 n+ k. c* Z2 E/ d#include <linux/leds.h>
5 R+ H* K. n4 _' W' \/ T) j#include <linux/platform_device.h>; T2 D3 g$ `) {' ?) y2 b

- d8 w0 Q' @5 r1 |" ^- h#include <asm/mach-types.h>0 A, _# k2 F& c6 P. W
#include <asm/mach/arch.h>( E; L7 Y7 u: L1 {0 u
#include <mach/da8xx.h>
& U% N" B, h7 @#include <mach/mux.h>+ v' Z0 \, H" f% H4 T  |

5 `( v% A5 w* u9 o5 K#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 c& j- \+ F4 @) U
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ n) `8 L  s! W) c#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) v9 j' G9 q# h5 q/ Y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) I9 M6 F) Q3 Z8 E
% L2 y5 l$ m4 ?, D' [
/* assign the tl som board LED-GPIOs*/" v+ [2 m8 d- U. q& j
static const short da850_evm_tl_user_led_pins[] = {
' m5 \* n4 w9 o/ g. y1 N4 i4 \        /* These pins are definition at <mach/mux.h> file */" O9 u  B, C" `/ I1 `* d
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ ~4 \9 M6 k) [% Y' b8 X8 m
        -1. R6 r/ @4 m9 c( l& C
};$ w4 a/ i/ G& k6 U3 F% ~+ C
2 V+ F  \+ D( T! U# R
static struct gpio_led da850_evm_tl_leds[] = {
) b% r/ s5 E8 d  T  H  K. n        {
# J5 j* {% s) l: b6 P3 o" ]                .active_low = 0,3 A0 K$ q7 c# x8 ~4 ^9 Y9 j
                .gpio = DA850_USER_LED0,
5 B2 ?; r: k  E5 U' X) C" R9 y                .name = "user_led0",2 b3 b3 R0 L$ M* p& V( T& m
                .default_trigger = "default-on",& \3 N/ l- i+ \
        },! {4 w" |) l9 v1 o
        {- g5 G$ {8 Q8 q9 l
                .active_low = 0,
* b# v8 f( o" R+ J3 N1 C! k& e                .gpio = DA850_USER_LED1,' s4 s* C* |4 O  Z0 c. g
                .name = "user_led1",* u+ ^: N/ t# ?" C
                .default_trigger = "default-on",( {$ N7 ^9 L7 q  U
        },$ b( D' a5 q  w1 A
        {
  L5 m9 E& x' ~                .active_low = 0,, b+ a# v0 k' r2 H
                .gpio = DA850_USER_LED2,
9 S' _. [6 L# N1 f; D                .name = "user_led2",
5 p0 \  h# V; A; }/ n                .default_trigger = "default-on",
$ E6 k- o3 S0 W: w4 H: D        },5 m) z" l& M. K6 k  f8 g+ D
        {5 H5 k- U7 K# v
                .active_low = 0,. n; N( ~# n* e3 [" r" e* o$ D4 E
                .gpio = DA850_USER_LED3,4 L& h& a, ^. N: t+ m% [$ f
                .name = "user_led3",& I; B* f; w; |. }* D
                .default_trigger = "default-on",
# s  t2 F# L+ L) b, O% }$ k; {        },# _, X7 {' V7 v; U; f
};
2 [2 n; s4 A: r- P0 U' G. |
6 F) F" u7 \' K$ f5 ^& cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 Q6 i0 z9 U9 b. a0 N! u' {        .leds = da850_evm_tl_leds,
+ A2 H7 U, ~3 E- E5 s0 x. u        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 S7 Q( X# x8 n$ Q# s! v};
0 P8 Q: ~" C0 L! q2 _! u5 J1 `
  b4 p, Z" q/ ?8 J1 I8 n2 Cstatic void led_dev_release(struct device *dev)
5 r8 q) g1 I. d) u" I# U  o: B2 ]{
4 I, B8 P0 o' y2 l: [3 X0 t  [7 f};
. Q8 q3 F/ r# q. Q* c. v8 B. @+ Q: {6 v. @' [  L# \& S; D8 _
static struct platform_device da850_evm_tl_leds_device = {3 r+ x  M, B. N1 X0 [7 ~
        .name                = "leds-gpio",5 n5 e4 ^2 m; J# H
        .id                = 1,) Y" b6 a$ I, x$ q; w
        .dev = {3 R$ J  u/ {- S8 H! [
                .platform_data = &da850_evm_tl_leds_pdata,
  b. ~( S. T( I                .release = led_dev_release,
0 @! k$ {( S; S/ B$ x3 ~        }
* R! H8 Z+ Z+ c};1 t5 I% T; a. n; Z
  W* s% \, s$ N! C" O
static int __init led_platform_init(void)
, Z/ v5 o9 {  z& ?6 D: O3 o$ Y. J9 M& w' o{" J. D, H% x: A3 C: Q
        int ret;- E/ W! Z; b0 G+ [& j# Q% c
#if 02 Y$ O5 ]! F! a% r$ t9 d
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( q+ E" G4 ^# E' o6 a0 U        if (ret)9 y( x; K, G' `. k5 j' V9 l
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) k  Y  y, P/ [. r: E0 y" y                                "%d\n", ret);
7 E5 I$ U$ K3 A' G3 j5 W) E#endif
* G- z! y2 C( ?0 P        ret = platform_device_register(&da850_evm_tl_leds_device);
8 @5 O- l9 p8 n1 V5 @        if (ret)5 t* \/ m/ \9 r3 d2 _
                pr_warning("Could not register som GPIO expander LEDS");+ x$ M9 u) I( `0 _1 X
        else/ d, Y% U) h0 @5 W
                printk(KERN_INFO "LED register sucessful!\n");
% N. U& H" q$ L# q; l) p2 W
1 i0 S# F8 ~* [        return ret;
3 `! _- r7 R- u  o9 K7 C2 t}
9 y( a( [4 V& }. b3 ]( H% U0 {- f% R0 z$ J+ j5 K8 X
static void __exit led_platform_exit(void)& x) ?  E# R4 C" w
{7 `: h2 L9 {$ q3 _+ F
        platform_device_unregister(&da850_evm_tl_leds_device);2 p$ }6 d7 B" T7 |

& ?' v0 K" I9 [! {        printk(KERN_INFO "LED unregister!\n");
. u, e# G2 F% _" F$ P: x5 G& w* t}
) ?  a+ t% V$ m  ~9 q3 t% T! b
+ j- @3 k5 _1 d$ p5 U+ A- I* fmodule_init(led_platform_init);' I. n( y7 c- N
module_exit(led_platform_exit);
" P- ]5 H/ J5 l2 H. t% L
" W" Q1 h+ l8 L2 ?& m3 bMODULE_DESCRIPTION("Led platform driver");
0 S9 {8 N; Z2 }4 U( l5 v2 LMODULE_AUTHOR("Tronlong");
7 o' J! b7 P: K* [: I% EMODULE_LICENSE("GPL");3 d& V3 }+ P. `5 @& k
9 X3 O* k! d' ~" `  w: r2 N6 _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-11 20:43 , Processed in 0.039467 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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