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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* P/ e0 V8 |5 E% n#include <linux/init.h>
. r' F4 B8 ^3 ?* r0 |#include <linux/module.h>
! y6 t9 S/ p" o' D1 v. f#include <linux/kernel.h>
3 u8 ]" Y- U0 B: w4 v#include <linux/types.h>6 J% s9 x$ ~0 Y& S  H" p
#include <linux/gpio.h>
' Z- i4 }" t0 q' E5 J6 U& o2 U#include <linux/leds.h>( B! S3 j+ N0 v( S# o1 c' S$ G! b
#include <linux/platform_device.h>
- P5 m" O- o2 I+ B
8 ]- d0 I: m) C+ i. q#include <asm/mach-types.h>6 S2 q) @1 [8 O3 J3 v' W5 B
#include <asm/mach/arch.h>/ I/ p" G2 e% Y8 n: Z5 C! V
#include <mach/da8xx.h>5 X/ q& ~$ X1 m3 l' i- i
#include <mach/mux.h>* o7 k8 ]$ |2 q
2 B# Q: j% b$ ?# p7 r3 F' ^
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ A5 A5 h" }$ ^) _; z7 l8 ~5 I#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 U0 E+ V/ {' x1 }#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 @9 b) {. o# d  \6 y% w
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): z5 z7 S9 h* b& J5 R

- \* ^# M. T% D  N, j5 H/* assign the tl som board LED-GPIOs*/
2 \) ~* i; M9 s0 V& y) |static const short da850_evm_tl_user_led_pins[] = {
5 _  O6 c# `6 n& G1 J        /* These pins are definition at <mach/mux.h> file */0 R2 F0 B, F- D* F- Y; X
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* I! c) t' t  L7 J+ C
        -1
" c; a- \3 l7 O/ ?  U# x7 w};( T8 z; K/ @/ s
( ~5 R* H+ B3 }5 _! Y" w, L. B% w. q) p
static struct gpio_led da850_evm_tl_leds[] = {  Q+ M1 \- d& O7 Z7 @& N
        {
2 S- k4 ~. f0 O  M                .active_low = 0,
$ A) t# m+ l0 s3 g/ Q                .gpio = DA850_USER_LED0,  E# l4 W, o8 U- N& S  }4 l2 f
                .name = "user_led0",$ o8 u+ V8 ~; K# b7 E$ W
                .default_trigger = "default-on",
# B9 T' B/ {8 M; B+ k* m        },) C) v1 F/ z" Y0 O9 j7 e
        {1 v6 |0 i: V! p. W" D9 L
                .active_low = 0,4 e- Y! q8 F( k# I6 \- m8 j! R
                .gpio = DA850_USER_LED1,& ~4 r5 K' ?) c2 `4 L6 d; Z, K# h
                .name = "user_led1",( b0 e* o* `/ s+ B6 [% y
                .default_trigger = "default-on",
/ Z3 k8 H7 R2 h; E- o        },
0 Z+ `' U/ P; ?" u: m        {
6 ^8 V+ }) s: |* n9 Q" O' ~% j                .active_low = 0,
& F0 S0 ]) R, ^: Z* o' e                .gpio = DA850_USER_LED2,: `* ]  p! ?& K
                .name = "user_led2",
9 U4 ], _3 j  k, u' e5 i                .default_trigger = "default-on",/ o6 _2 _; G2 W6 f$ [
        },' ]6 r! m; H3 d/ F7 r1 r- z! M
        {* r& V0 @/ e1 I/ O
                .active_low = 0,
  F4 G5 y6 _1 ]1 ^0 P                .gpio = DA850_USER_LED3,/ {% v" A& g+ L: w0 Q, A0 s: B
                .name = "user_led3",2 ^9 t2 H& ?/ \
                .default_trigger = "default-on",
% I9 v/ i# [1 I. H! D        },' p' n, Z5 \. O* e. k4 m+ m# H
};, I/ G2 w* K7 x; ?

8 T" E  _$ S/ r" t. O  z( Istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 L  g8 H) a3 P% l
        .leds = da850_evm_tl_leds,
6 E3 N& e; [3 T        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 S" G: o* z4 \- E% b% \1 \};
7 P* Q0 n3 Q7 K( ~2 M  |" o3 @# v9 _% |9 X; M1 v
static void led_dev_release(struct device *dev)/ X! V5 j! d! ^+ T/ T2 n, m
{6 B: }7 X4 A; m7 y
};
" T- o( O) W1 w0 p1 s* Z
: {, M$ J% J" d9 p/ t( e* U$ bstatic struct platform_device da850_evm_tl_leds_device = {, I+ D* Q8 l6 j- T8 r
        .name                = "leds-gpio",
1 h+ O% x' _3 U3 n+ ^# J& o        .id                = 1,, G$ s; Z" O2 Q) x& x4 J: O/ e8 `
        .dev = {, p  R) K- h; z4 o% X
                .platform_data = &da850_evm_tl_leds_pdata,
! _6 ]# s# N9 o6 v2 w1 d5 d; n                .release = led_dev_release,
9 N! K% @/ Y/ t( a/ B        }5 j" p1 n! O* U0 H0 Z( W) X' X
};
& ?, \7 b1 [9 z& m4 H% x7 Z
* \2 d" ~! B3 W' Y. q3 W0 N; sstatic int __init led_platform_init(void)
5 P* ]7 l) h- U) H& [. A1 F' z{
* Z7 i3 I' t) m! h) t        int ret;# u, T1 A* o7 D3 Z) S
#if 09 e) ?4 s' a* k" l+ ^. r% x
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* v6 Q9 s0 S" K' g  }/ r
        if (ret)
0 `: T* V/ f- K7 y/ t                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": Q7 t3 a* P( g; S7 ]& [% J
                                "%d\n", ret);' G6 c# i* X+ F0 s
#endif. {# \; j+ ~) D
        ret = platform_device_register(&da850_evm_tl_leds_device);- Z: g( k/ c! n0 ^2 k
        if (ret)* v3 i4 `) t& @, D
                pr_warning("Could not register som GPIO expander LEDS");
( l% |, A5 q7 u6 ?5 O, j        else2 _. N1 w8 F+ T6 u
                printk(KERN_INFO "LED register sucessful!\n");6 e+ z) B* l2 z& e( u3 H$ \2 b* \7 Q0 e

9 N. C/ W$ C6 a" U; V% q8 Y. t        return ret;" d# B% M5 A/ w, c, W5 e' Z
}8 \8 H' _' V  P
/ X$ D, @* H8 `  R& C) g5 U' h
static void __exit led_platform_exit(void): v2 d8 C. W% u' k: ]) K
{
' }# k3 i4 q1 `        platform_device_unregister(&da850_evm_tl_leds_device);7 p! q$ u- o9 O8 \& q6 r3 h2 k

0 X1 ]8 U9 ~% O. W; `        printk(KERN_INFO "LED unregister!\n");7 e* T6 X% {# O. T2 |- |$ i
}. Q( |& U0 {6 R+ S! i" ^; D
0 s) Z; e* S& X9 t; Z1 H
module_init(led_platform_init);. A% H% O1 c1 b: [! W
module_exit(led_platform_exit);
$ W2 z; c9 n! p( i) k* n/ k# Z- I2 B: k; }% T/ E
MODULE_DESCRIPTION("Led platform driver");1 R& ?2 i% o; j# S5 o2 H% f' C
MODULE_AUTHOR("Tronlong");
; C" U0 Z- e/ z$ z6 kMODULE_LICENSE("GPL");
) m3 O& p* Y( U% a# [3 [
" ~, x  U% o4 [7 x9 Y# v: \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-5 07:29 , Processed in 0.041116 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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