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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ Q/ l0 P" [6 r1 ?. K
#include <linux/init.h>
; I/ h( b3 W. v( Q. T! z#include <linux/module.h>
% B$ `$ K  A) d1 u! A" ~3 b#include <linux/kernel.h>
6 _( J' `# |$ Z#include <linux/types.h>
0 ~( F) \1 V/ k4 g#include <linux/gpio.h>, _2 p' o, K( j9 C+ C8 S) D
#include <linux/leds.h>) J% v$ C0 J, m6 r& v7 q
#include <linux/platform_device.h>
; L9 A. ^- t2 _) W4 Q: x; o* D+ N0 F) D& Z# E4 ?% I4 }
#include <asm/mach-types.h>
* R4 I; `% e% R2 m9 [  ]8 x#include <asm/mach/arch.h>3 s# d4 I% N! ]6 O: @/ D3 O
#include <mach/da8xx.h>
3 z& ?: P2 ~7 x/ l#include <mach/mux.h>3 j$ A2 E: N, |$ j
' ]% {$ ~0 `: L* [( E& l2 a7 S
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  q* C4 M) R! N1 E/ ]) y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% r9 u5 v+ |/ b4 O" [#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), ?8 e0 V& L& F- W
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- N/ p* K- u# z/ Z7 i+ X

. a/ H( |" ]0 @" J9 q/* assign the tl som board LED-GPIOs*// r( M+ |4 G& l- c6 y2 W
static const short da850_evm_tl_user_led_pins[] = {8 N$ g3 L2 o% d! @$ ^+ X
        /* These pins are definition at <mach/mux.h> file */' v4 [& y2 F! t
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) c& v) z9 B# A0 T- ]        -1
' h" c9 j- j% i9 ?7 m7 V1 @};
) G; O8 T, l2 K  @& m& S3 E6 J9 C7 l* o& z; g9 l
static struct gpio_led da850_evm_tl_leds[] = {
/ R  q$ G6 E  x/ G5 k! {3 f        {9 f  {% Q6 F9 i6 ~: ~
                .active_low = 0,
6 ]' X! N- X2 j) E: X                .gpio = DA850_USER_LED0,$ q1 \+ Q( n( R: \7 Y
                .name = "user_led0",; }  _3 ?9 c7 P: J8 [9 h7 Z' x6 h
                .default_trigger = "default-on",9 Q; `4 u4 e* u% S
        },
  l1 K- a: x$ Z2 L) F        {1 K. w* }2 \- s, s
                .active_low = 0,
4 F2 `9 e3 w1 z. u; V3 T/ r                .gpio = DA850_USER_LED1,
' t, C* N, b/ X1 ]2 ?* Y                .name = "user_led1",8 f+ f9 m3 |! W9 b/ ^# F9 u
                .default_trigger = "default-on",  i. F9 o8 B$ z
        },( ]8 D& O2 ]' Q
        {; x% M+ H; v. W4 o5 }
                .active_low = 0,
1 f- X7 W" I: }  Q9 `; F                .gpio = DA850_USER_LED2,
5 w5 j' [8 q) t2 q1 |                .name = "user_led2",
$ Z: u1 d5 ~9 Y4 Z: P# |: |$ x, v                .default_trigger = "default-on",/ f. g, x" R( q+ F5 Q& R* p! o
        },6 _2 d& E1 y) \+ L5 P" r9 r
        {
' Y& ?9 ]. E9 B/ n$ r/ K/ _                .active_low = 0,9 s1 M% L& {  V. P/ y
                .gpio = DA850_USER_LED3,
4 R, W. `+ `/ o% L2 h                .name = "user_led3",
9 y; V$ z* y) L8 ~0 S) |5 p                .default_trigger = "default-on",
5 Q7 w7 ]; p, z  D        },
# U( V- y( y( V7 F; g};
( }( ^* U, D' \! i6 Y; o
& c" S# E! _9 y. p: i) wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  R; S4 `4 W; G' w& v, y        .leds = da850_evm_tl_leds,
. E5 {4 C4 o/ ~1 q% f- j+ v, ?        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, R9 a+ z+ R& d5 q8 b) ^% }8 V
};
/ l* X8 g1 L- M$ k5 R
6 H& k# S( Q, F# t) T+ ystatic void led_dev_release(struct device *dev)' a- B" p* [1 O* w; s7 I6 k1 g
{# q% |$ G; W0 j3 ^& M
};; C: C; W: U& ?) w* z2 [
( w9 {' ]" o+ k' |4 m/ Z+ z
static struct platform_device da850_evm_tl_leds_device = {5 V9 C2 U  c% Z- R% h/ T7 Y
        .name                = "leds-gpio"," L6 T4 l! k7 C; a  a+ a
        .id                = 1,
1 s- |# }8 l3 w+ u        .dev = {( H: k6 b; W/ [$ C
                .platform_data = &da850_evm_tl_leds_pdata,, ?0 _) y' W+ D  H
                .release = led_dev_release,+ i! f" q0 @( p$ J  _
        }- n: {0 j# \% S
};# T! N  k3 o9 w. q$ w' ?
; b  h; i; A3 M: @9 h
static int __init led_platform_init(void)
# M+ o9 m* P. a" U% M{! u$ R. a3 e9 }1 f: ]
        int ret;
; l' {% P1 b4 k! }4 U: S0 x  M#if 0
  U- z5 \& Y* p0 Q3 }+ h) U* Q        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: H1 [  c. c" `; J& y4 m3 F
        if (ret)
% o: V8 @# B# |, P6 f                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 H  c1 O( j! e+ d( q                                "%d\n", ret);
, x7 f4 P! x" C; j#endif
3 @$ I- D* z4 O  u        ret = platform_device_register(&da850_evm_tl_leds_device);- M% d+ ]- Z) }6 i* J) `% d
        if (ret)2 m! M4 m/ L) N. j
                pr_warning("Could not register som GPIO expander LEDS");
) i9 \3 ?6 d- k" M0 A        else
% @( A9 f0 E& Q* ]                printk(KERN_INFO "LED register sucessful!\n");
; q; }) t+ n! x; v" `5 n4 f: E/ y9 J! P% o" b3 A* N  L
        return ret;
# C2 W! v8 h9 {  ^% T, t}
* I4 Q9 v4 p6 K: d
" J; A' N" L; Xstatic void __exit led_platform_exit(void)
# @3 t, |' j5 J3 U8 d{
6 P% Q  U$ l2 v$ u. f2 l$ ?  q6 c        platform_device_unregister(&da850_evm_tl_leds_device);+ J# o# v; j, z8 Z6 p5 v! W
9 g6 j$ C; j+ J" Y% s5 m4 W0 w! Q7 ~7 B
        printk(KERN_INFO "LED unregister!\n");
( R2 i6 F9 M2 P0 R- c+ a$ r}: h3 K. v$ O; t4 P* x
6 b% f( [. }0 t$ B
module_init(led_platform_init);6 z' ]5 N1 I+ g9 ?" @6 v7 m" J
module_exit(led_platform_exit);5 v' W& j% d; {8 S; W: D% l5 o

* t4 r( D" j) @6 \  Y( Q* @MODULE_DESCRIPTION("Led platform driver");
. p. i) a/ h4 H0 L6 J; T. XMODULE_AUTHOR("Tronlong");/ y- Z7 l' x! B. D) [. R
MODULE_LICENSE("GPL");
! X" d0 U+ s, R( i9 T- Y2 W* c! D! }8 Z* {2 _* _8 E2 }. k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-20 21:27 , Processed in 0.041480 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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