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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. L* ]; e# e6 o+ r& f$ R6 ?4 A
#include <linux/init.h>
# J& [1 e1 j; l7 c9 ]) A#include <linux/module.h>
0 h% k. R2 h" s#include <linux/kernel.h>
* n/ F! M2 v" u; T#include <linux/types.h>
) D) U  J6 c5 ?. i* \" u* K# t#include <linux/gpio.h>* j' h) N0 |9 T
#include <linux/leds.h>; E1 w& b! Z' Q* V/ t2 L
#include <linux/platform_device.h>$ v' R4 O' w( P  {$ C8 s! E" W

: |( m  p6 i" L4 A  |& P5 O  A" S' j#include <asm/mach-types.h>
. L5 @8 u$ |/ X/ B3 C: R#include <asm/mach/arch.h>( k) z( `- n. l" A3 ?6 w, w
#include <mach/da8xx.h>
7 a! v% j: t& N#include <mach/mux.h>
* ?6 X& h8 A9 G+ B; Z
. d, q/ M1 l4 y- G- `: I#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& _5 a6 S+ p/ H* \  b
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! v9 {& o2 x# k; J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' x! u! I+ h  ~% ^+ H! c
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' Y. j' U+ H/ ~% r2 n% [, Z
5 o% ^; C8 d9 p/* assign the tl som board LED-GPIOs*/+ y0 m" j5 b8 O5 N8 ^' A0 W
static const short da850_evm_tl_user_led_pins[] = {
" K! c' [2 b9 z' A        /* These pins are definition at <mach/mux.h> file */  X' Q% Z  r! ~9 w2 p, x4 ~
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 u1 Z; P# t7 F$ y- o" {4 b, n: ~9 C        -1
9 l# O. P$ @1 H( {0 Y9 r};
0 b1 ^  v5 M/ B7 F7 ?& z" a+ s1 Z) l- y7 A' O. h
static struct gpio_led da850_evm_tl_leds[] = {
# j* N8 \5 g  y: M& M        {
# o" Q# k: K5 J5 n7 `                .active_low = 0,
  `" g/ ^0 o, h/ h# b: n                .gpio = DA850_USER_LED0,
2 j! f/ \0 h; C                .name = "user_led0",3 B$ ]; Z' k' u# A
                .default_trigger = "default-on",) q1 G7 C2 G- X+ J0 c. B6 R
        },
' ^: T0 l4 n, [( S        {5 ~$ g+ K/ m  L, x9 J' b' r. W
                .active_low = 0,3 y( l# A- S( A1 x5 z( Q0 n
                .gpio = DA850_USER_LED1,$ Z" O( i/ _) _# N' R: E, n
                .name = "user_led1",
& b* W6 n$ |; b+ R  u/ m: J& M( w                .default_trigger = "default-on",
! q- D( Y1 W( A9 ~2 A% b$ y- f        },
6 [; h# d: i. ~$ H; u; e/ n        {% P4 z7 E& X5 U: K
                .active_low = 0,
8 P. f/ N+ P6 \8 T) y, k                .gpio = DA850_USER_LED2,
8 b1 k6 _' g: T  M$ ?$ }1 d                .name = "user_led2",% D* H1 s/ {$ e3 E3 W5 J4 S' V
                .default_trigger = "default-on"," D! n+ n; c( w; ^3 j, X$ O* L
        },
% m8 a4 t& D, V6 b4 T' ]$ b        {
5 ~( P& U1 `3 O8 c                .active_low = 0,
1 c4 ]* E- ], f! s* N6 j) @- z                .gpio = DA850_USER_LED3,% l/ d8 k6 p- ]7 |" @/ |
                .name = "user_led3",3 }$ {5 ]5 i7 P0 ]* f" `
                .default_trigger = "default-on",- b" [. z% ?9 n8 G: R
        },
" Y- x- r# F- x! y% r};+ P' x+ `2 g$ L8 T/ Y
: B. E( y. S& g% w; T
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! L! H8 ]' o" \" r7 C$ e* K        .leds = da850_evm_tl_leds,
: @. U" u, b+ E' s  V7 D, z/ M5 }) y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( ^6 g5 q8 ^3 H- ^6 ^. q& {' b};  {% T/ j* d: M+ e! U

) a* M7 ?$ q  h$ G$ D* p4 K1 |static void led_dev_release(struct device *dev)
; z# ], R1 Y0 [) C{6 h4 }. e3 v% E! D2 ^" v2 k
};4 T- B4 O( X# P$ w5 }

+ z. I, f/ b6 N$ g7 |/ astatic struct platform_device da850_evm_tl_leds_device = {4 N6 {8 M: n) g( q! E# X
        .name                = "leds-gpio",4 W$ h) r7 h8 F. ?
        .id                = 1,0 Q3 s$ G! v; J+ N4 \4 r3 p" k+ B  Q7 w: u
        .dev = {/ A8 k8 _9 z. p. m
                .platform_data = &da850_evm_tl_leds_pdata,
* K; Y; V; Y# J                .release = led_dev_release,
, i) W  `1 h* m+ V$ W9 B        }
% g  F. U% R% I};2 P& K# t, r0 F( w

  L( ?( F: n) [+ X/ y, Sstatic int __init led_platform_init(void)
( h8 J* m8 S% v$ [2 B2 T& v$ G{
% x2 u+ o* h0 Z1 y$ N- n5 N        int ret;1 I8 b8 F, s" t$ J. t( e
#if 0
8 f- o6 P! r+ D        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  \9 r# W" `% P& g) x  c: u        if (ret)
( q3 G# W- x6 M- t" D                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ C; f  j; M, j  U                                "%d\n", ret);
0 B& `9 w+ {) U! a#endif; T# A' y9 A1 G4 h0 I
        ret = platform_device_register(&da850_evm_tl_leds_device);" ~7 `5 ~- C* p: S) @0 g
        if (ret). D3 N9 Y0 T) H
                pr_warning("Could not register som GPIO expander LEDS");
7 x. d* x* I; ?( R! |) P. K! X        else& M, B9 L1 E8 ?& J
                printk(KERN_INFO "LED register sucessful!\n");
, F' a- p- T7 G0 @% J
( }6 X( M7 F& B        return ret;
7 U/ @/ M5 I$ C' J; d}
" o" E6 z+ v2 u" S3 R7 H% [5 x- i/ L0 Q8 {9 j) r9 |' ~( e. r; y
static void __exit led_platform_exit(void). {/ W. P7 J  d& n% p6 _
{
% K1 O! V: g5 }8 G& X) z6 U        platform_device_unregister(&da850_evm_tl_leds_device);* C2 O4 e; |& i. y& G
# M) |/ v7 @* A2 |" T
        printk(KERN_INFO "LED unregister!\n");5 b4 S! `, u7 h5 D. f! v# X6 y  j7 n
}1 b7 V" d- l/ Y
0 @- O/ Q. g9 D. r+ A
module_init(led_platform_init);
/ l/ V8 J) g; n# d6 @# T# l3 _% kmodule_exit(led_platform_exit);
! A* g% j! t4 y
5 t9 X8 L6 p( U2 f2 p" HMODULE_DESCRIPTION("Led platform driver");& y) T5 w/ z2 |8 d
MODULE_AUTHOR("Tronlong");
. p4 C- W* f; [) X9 pMODULE_LICENSE("GPL");$ p; O' ^; ~* u

; h& s6 K# X, m" Q) p5 ^% `  D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-13 01:05 , Processed in 0.040960 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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