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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# [5 c( F  u' L4 K: T#include <linux/init.h>
: \1 E; x+ z/ k#include <linux/module.h>
  J; m; x7 g" ]( p#include <linux/kernel.h>: r9 J5 d; P5 Y3 X1 ]4 G2 v
#include <linux/types.h>
4 |7 Z1 m6 P: R8 V#include <linux/gpio.h>
3 B$ c# `9 X) b#include <linux/leds.h>+ {, Y% `* N; m( D( B$ N4 `4 x% Y
#include <linux/platform_device.h>
) }: _7 s3 P. J) `0 J0 Y  Q& V* n4 |% v$ X; ?' j) p  q$ w2 q+ ?) b
#include <asm/mach-types.h>
9 N: e. U- [& u6 r#include <asm/mach/arch.h>
. S' M( E6 M0 N! X" [2 R#include <mach/da8xx.h>- w5 L2 v4 v: n" r
#include <mach/mux.h>' ^- P& P- P4 j6 f7 Q
1 z7 U3 K2 ~% j% A' G8 f2 J
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 q7 A+ J; d$ a) I4 e#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 T( l) g% u/ b
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 Z* v$ M8 q! u% `0 v0 b2 q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ k- V% c9 B& |- v& {
. p8 ^2 n, A3 X' y4 B# d' Z
/* assign the tl som board LED-GPIOs*/
8 K3 }& Q" s* e2 Q# [static const short da850_evm_tl_user_led_pins[] = {
2 N" J$ o: ?" C5 k9 q( s4 W& w        /* These pins are definition at <mach/mux.h> file */6 L; h  D: y4 J4 Y7 L( u# [' Y  D
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ q5 m4 b" Q0 |        -1
( t' E1 f/ o6 \* E, n& v- H9 `# w};
% r! ]! k/ D  ~. d1 M. b
' b$ a+ _" ^7 Cstatic struct gpio_led da850_evm_tl_leds[] = {
" h1 d% z% Q' a' o! M% ^        {4 \5 j" \! {& j* K
                .active_low = 0,  T% F2 {6 w) u1 O
                .gpio = DA850_USER_LED0,  b* u* F- [/ Z& `' ^
                .name = "user_led0"," x% O; h4 _1 q4 m% K6 d
                .default_trigger = "default-on",
- e; c. ?2 b5 y  q( F' e5 n' g! @# P        },
9 ~/ S7 v! |0 a" P. P* H* s        {& |9 j4 G2 b0 O) r7 k
                .active_low = 0,6 D* p8 Q5 U' X4 Q
                .gpio = DA850_USER_LED1,# V: H% H9 N8 ]: I( k
                .name = "user_led1",) H' M0 u# E5 C: {0 @3 G, \! H
                .default_trigger = "default-on",0 G6 ^5 g; K8 t0 Q- F
        },
: x2 A& a" ~7 O8 h- a        {- \  n' i* F) W; M  L. u
                .active_low = 0,% o" f2 ?1 [9 T+ K- u- ^
                .gpio = DA850_USER_LED2,( `1 `! E+ }2 f  c7 b
                .name = "user_led2",; x- H6 Z. e( o, p
                .default_trigger = "default-on",2 y: T) z; _1 n( {
        },
& H2 Z2 o% @+ _7 @1 \        {9 w6 [& ?' V* p) _6 e
                .active_low = 0,: n: D; [+ t" U4 Z
                .gpio = DA850_USER_LED3,
7 e; j1 ?5 B/ r% H: w- d                .name = "user_led3",
/ h1 o/ }- c- {( {                .default_trigger = "default-on",
: G& ^, X) W6 c& U( A" V7 P        },- L9 \* L1 a- y# V
};
  }* G$ @# v( b* }, G# C
5 T4 K7 B) K3 @' c9 ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 v. ^6 _( J, T7 Q& x1 N8 V
        .leds = da850_evm_tl_leds,- ~% Z1 S' ^3 }5 `; k/ Y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ I2 {) `3 \6 v- `. V7 c  o; D- |};7 X- r+ N0 |" V# m

) Y2 s2 d5 W. C0 M9 Wstatic void led_dev_release(struct device *dev)1 d+ |! M. X" `
{
  @- E" S9 U" B# n0 Q. e};
& D. G  u* v  I1 \
& O4 |) j1 w7 n& c" A2 g- [static struct platform_device da850_evm_tl_leds_device = {
4 `( W. ^3 J0 u8 |3 \6 [1 y7 {        .name                = "leds-gpio",
2 j" e: M0 y( s% T9 x# g1 K        .id                = 1,* ]6 t% u, P7 U- H- W
        .dev = {. e/ M  c8 z% l
                .platform_data = &da850_evm_tl_leds_pdata,
  h% ^  m  c6 M2 A1 M: W$ W                .release = led_dev_release,- u/ Z/ q, ^# T5 Q* y6 K
        }
; v9 v/ r5 i. \, F5 ]0 D3 O% l};
0 U! f2 R6 @- b9 V4 A. c2 E+ D6 z8 M: ?6 ~3 F$ t0 ^' W
static int __init led_platform_init(void)
# j) J3 o3 y: M4 E, f0 Z$ ~# h{
- m* \% ^$ C7 B  @( d4 g$ O/ W        int ret;2 R+ ]1 ~, l" g0 N
#if 0
8 W7 e4 \9 ~* J        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# B8 C3 |: g, E8 w        if (ret)
3 m& W) e+ _# p. T. `' C8 a) u2 A' R                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": H/ y$ n; m- }0 h/ m
                                "%d\n", ret);' _0 }3 {2 P& C6 X) D- b  [6 S
#endif
# ~6 P+ [5 O8 \# n% X1 i# K5 Z        ret = platform_device_register(&da850_evm_tl_leds_device);8 b0 _5 A  |! L, L: G2 P9 @+ A
        if (ret)! A* j1 b6 w$ |- T- _
                pr_warning("Could not register som GPIO expander LEDS");
/ K/ w8 l+ h1 u5 f        else: r# g! O/ O7 p/ Q: M+ @& |- V7 f
                printk(KERN_INFO "LED register sucessful!\n");
1 y$ K9 |7 j) r6 D; z% n: [! s& N, V, Y4 D
        return ret;
! m$ P6 P( U; m( A2 w. p7 B& W( M}; F; x3 n2 ?$ G
! ?- A' S, W& K; ]  K7 F
static void __exit led_platform_exit(void)
) w2 V3 r) e+ k) d0 L1 X{
, u% e5 L2 C! L  K0 K7 E        platform_device_unregister(&da850_evm_tl_leds_device);+ i  |3 b1 \  l1 C! ]! F
1 Z  u, ]/ _# Q7 U# o1 D7 x
        printk(KERN_INFO "LED unregister!\n");
5 i2 f" j& G( }: [, b8 Q' [}$ F- q. X0 Z2 u; J) i& L

  Y# {) {+ v% X- I# Zmodule_init(led_platform_init);
" t2 N. B# K; o6 E/ imodule_exit(led_platform_exit);# _( x+ Z3 X4 z" T: T$ m

* o- Q& w1 }/ [" J/ i" P  w6 W2 kMODULE_DESCRIPTION("Led platform driver");
, ?9 s" A: v( w5 b) `MODULE_AUTHOR("Tronlong");
  J1 M" m' l( ^+ CMODULE_LICENSE("GPL");
  U6 O* H# h5 c/ |% P* ^  [7 s( X; Y. s6 \* x* ~1 n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 04:51 , Processed in 0.062676 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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