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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: L/ p5 T" m7 ]; g" g#include <linux/init.h>
$ W9 e+ _) k$ V& p* z0 V3 L#include <linux/module.h>
+ {6 p+ F" v1 g$ ^# c8 a#include <linux/kernel.h>
) b; c) B3 n, E" q7 {5 [& F! o#include <linux/types.h>
/ ~6 g3 H2 t" B#include <linux/gpio.h>$ q& o# O' O  w- u5 Y
#include <linux/leds.h>
. I; t( X" @4 {8 |0 h#include <linux/platform_device.h>. b( O5 w. w% P% u+ a# |: v5 ]

! b0 _( r, E- [9 Q#include <asm/mach-types.h>( D$ t  J0 ]5 t: v, z& J" M6 l
#include <asm/mach/arch.h>+ i9 ]& ?' W9 j! Q% o
#include <mach/da8xx.h>
) W/ h& ~7 y% X/ w#include <mach/mux.h>
5 ~4 t- ?3 o# I& P# Q+ v( D# A! |6 m& y" w
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ n) ?* y) _8 _#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" F" S8 J3 \" X
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 U2 f9 |9 F5 W. i$ O8 P" L#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 \3 }  m) E. o+ ^3 D2 J; R. b$ s2 W

" \: |) g6 J8 }/* assign the tl som board LED-GPIOs*/
# t1 B; @( P3 M7 c' \4 `% [7 Ystatic const short da850_evm_tl_user_led_pins[] = {
1 t% I) Q9 N  v* @% s5 l9 B        /* These pins are definition at <mach/mux.h> file */* S$ _( u9 U+ Y7 {) H& s$ u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 s1 A3 k; P( c- g1 P        -1
" ~8 `% q8 a6 D; ~8 y! m};
! n9 G. c4 p' ^3 T. D3 [
, y. W  W) e( V& [7 n% M. w8 {static struct gpio_led da850_evm_tl_leds[] = {' X% {* S' @* q4 f. V: L7 v3 V2 L
        {4 d8 f* U! S# E3 k1 i: D5 s8 G
                .active_low = 0,
/ y9 X; f3 N& t( ]                .gpio = DA850_USER_LED0," O; u) U  I: O
                .name = "user_led0",
6 M, k7 q( m* W6 _/ y                .default_trigger = "default-on",- V$ j+ `* a9 @8 Z: p
        },
: G6 t, P3 m( t9 b        {
( o* s2 }% Y. V6 J! M: G1 N                .active_low = 0,: t, k3 M/ ^* C! i( h
                .gpio = DA850_USER_LED1,
% R( T& a5 B0 b3 T% Y( L; A6 _                .name = "user_led1",
3 M, x. @5 z  M                .default_trigger = "default-on"," f$ O0 S! z0 P1 P$ {. R# h" Q
        },
: ^2 g3 k7 m4 _, r) q; G        {2 u; E! t4 \5 M% v- M+ K' f- ~
                .active_low = 0,+ X  J- A  D6 e$ n5 u% O. E4 M
                .gpio = DA850_USER_LED2,
" I* x. D( J2 G% [2 v                .name = "user_led2",
; X5 `  I& X, A/ z+ F                .default_trigger = "default-on",
2 T0 @: ]; x/ k$ p& B7 U" N        },) w) R  m: x- b, U& K
        {
7 U8 l' C3 g8 p# Y9 ~, W                .active_low = 0,, p  e: }1 w0 j) i3 v# }- Q
                .gpio = DA850_USER_LED3,' j4 \) I5 q% B
                .name = "user_led3",
/ |4 G6 j0 l# u0 ~                .default_trigger = "default-on",
/ m. U4 {1 S* J: h0 v        },
+ x1 }9 w6 \  I( P: `$ D};" h6 `; ^1 `' Y! M3 f4 F# o

3 z2 G7 P+ v2 D! ]- U  }' a: ?static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ K% c% r9 y3 K# x) n
        .leds = da850_evm_tl_leds,; M7 G  R% x$ O7 e2 w
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! {+ |% `" ^( `& c
};
) d+ F: `( E* D
) u  l  b3 B  ostatic void led_dev_release(struct device *dev)
9 L1 c; J* B, H7 K  g3 D8 c{
9 x, o3 i  h3 A% `+ M};
# j7 w* q4 g$ d5 I: e5 o, }" o2 g( |% ~; c; m; C  b' B# E
static struct platform_device da850_evm_tl_leds_device = {
" }+ q; ~1 _# }        .name                = "leds-gpio",
" ?. Y5 r, A# g        .id                = 1,1 N$ p1 R5 K+ l+ s) Q
        .dev = {3 s* T8 \. k0 U9 _& z4 v
                .platform_data = &da850_evm_tl_leds_pdata,
& k7 y1 }9 T7 w/ v# r) S, F                .release = led_dev_release,1 l* O: \3 l/ m: `% v& x$ i! _
        }
7 r& }+ A3 u1 `};0 G/ e% o  P/ u' N, G
- o2 B  O& {1 I2 s2 A: E9 l
static int __init led_platform_init(void)
  u& x: |8 R. t; I! M{  E/ V$ L1 F% b9 J
        int ret;( W  b* r2 V" P/ E1 o9 r
#if 03 @; m# C1 t& J2 u( @5 S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. B) H+ @0 B% ?! H        if (ret)
. e' U) p& e8 ?5 p* z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' R; `& b$ J7 w: ?
                                "%d\n", ret);- ^3 |6 {: [' E( w: s; ?% ~
#endif8 B$ T4 K+ m8 T, a
        ret = platform_device_register(&da850_evm_tl_leds_device);1 G) g4 r+ X) M, C( P4 A- h7 F7 d
        if (ret)( l" v5 X# M) H) e1 t
                pr_warning("Could not register som GPIO expander LEDS");
! i" p7 C$ ^: H% g' M        else1 t1 S2 |2 {& H! L- X* U
                printk(KERN_INFO "LED register sucessful!\n");" q  K! P& e; o$ A4 K, Z

5 |, X6 K: w: t        return ret;
5 D) a/ Q3 B, _) |}
+ p: x0 l2 E! w4 `! r& L& P" {, U- T5 N8 T4 j9 ?- Z) G
static void __exit led_platform_exit(void)
  L( I1 _, H# u! x) D* `+ m. G& Q# [8 R{
8 j; y/ [! f, j* D8 K, ]3 s        platform_device_unregister(&da850_evm_tl_leds_device);' U- w4 |& \! m- l$ n9 `
, b" c9 ?2 O& ]) V# ?) [! U  ~
        printk(KERN_INFO "LED unregister!\n");
, U$ Y! [# ]( j+ F3 a1 B+ P}  C6 ~5 |. Z1 }. {' C

3 A0 ?! b; c* y; vmodule_init(led_platform_init);
4 {/ i5 I' I: `. v, lmodule_exit(led_platform_exit);
' ^  M8 X) F3 Z4 J  x" k* v' F) b8 V/ F& I  p2 x: Z
MODULE_DESCRIPTION("Led platform driver");
, S. D$ A* ?3 e5 M0 jMODULE_AUTHOR("Tronlong");, x7 W6 V) N# I% i. k" _! h
MODULE_LICENSE("GPL");
5 W5 ~/ k: ~, K) K  X
! r4 b9 V4 Z: X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-12 14:23 , Processed in 0.039789 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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