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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 E. o9 G9 q3 o- v: Z
#include <linux/init.h>0 {& {+ e2 B9 |! c# X$ F/ ~4 {) N5 F
#include <linux/module.h>
) n7 r: U- Q( |: E5 s#include <linux/kernel.h>
$ j7 S2 l" y5 x' I#include <linux/types.h>/ ], l! Y2 A' _. n3 r" q( w( Z0 {
#include <linux/gpio.h>7 Z4 p4 K  h3 |% c1 n6 v0 V. ]
#include <linux/leds.h>, z0 K; [& d/ C; b
#include <linux/platform_device.h>7 h* f8 i+ N( m+ Y8 ^1 A, T
: }& T5 e) X0 Q  h4 w4 o8 L7 t2 J
#include <asm/mach-types.h>
* z  _/ n9 o! \#include <asm/mach/arch.h>
% h  k  U3 U& e4 U#include <mach/da8xx.h>
5 W3 Y) x* b2 H0 K$ [% N8 }#include <mach/mux.h>
/ [. @9 z8 k9 E% K7 I8 T- D4 I  U' \# y+ v
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' P2 K. d3 Y' K#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): I% y; ~6 _( {5 J$ T( d
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 g. |/ I) ]' I6 J' n" \7 X. z( S
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 W9 l5 z2 o$ [; D' {" I8 j8 M
8 W- [* J& Y/ o" E
/* assign the tl som board LED-GPIOs*/" A( f, `2 A- K7 u$ I1 \- h$ D, X
static const short da850_evm_tl_user_led_pins[] = {* _) g% p6 N: B- \, k
        /* These pins are definition at <mach/mux.h> file */' A( x  o. b9 _  Y  e$ i7 J
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& H% |- `/ T$ E5 o        -1* _3 m; c/ d/ K
};# g4 M3 v; U# L& W- h) @/ ?3 g. p

6 ?) A8 R+ N+ w1 e% o* Fstatic struct gpio_led da850_evm_tl_leds[] = {
' ]# Q4 w$ C" Q9 L" ^* E5 f( E        {0 O/ K/ f( ~. V6 v+ V
                .active_low = 0,& O/ [1 g* ?/ Z/ W) |
                .gpio = DA850_USER_LED0,
( u/ w, d; ?+ m1 I                .name = "user_led0",
- s9 p0 |$ |- k7 k0 R                .default_trigger = "default-on",& I% _, f, x( _* w
        },
$ r$ r% L: |1 N$ t# y% z, ^        {
6 |% n6 s6 }- Q                .active_low = 0,
5 k6 x: B  S. E3 c$ U                .gpio = DA850_USER_LED1,
' i! \) }; |8 Y" Q! t" a                .name = "user_led1",
( Z+ L  `) L8 i  s, z4 [& ~; P                .default_trigger = "default-on",
! V; B- m/ J! j! P4 V  B# s        },
0 V/ k; ]4 }5 L# a7 ]1 M        {: {% K. i& B  H5 h! R$ t' z
                .active_low = 0,
9 p; w% C* @7 D. q" G5 Z                .gpio = DA850_USER_LED2,
7 P# f! f7 z  A                .name = "user_led2",- Y8 _7 {" _* N2 D
                .default_trigger = "default-on",
- q# p& c4 D* ]! u; d# g        },
5 f0 G4 o& o! F3 G' \7 Z        {
) K( L5 @: Y1 o4 F: i                .active_low = 0,
4 X7 b+ c# d( h. N9 m  U( P  H                .gpio = DA850_USER_LED3,
$ u+ W& ?4 Q) B5 _7 W3 o                .name = "user_led3",) x4 a' f& R) L3 F( r9 R! i
                .default_trigger = "default-on",
5 P5 [. K: s* d" n% r) }        },
+ L5 y: Z4 {, n  O3 p( Y9 Q};: O5 g( C2 o4 A+ ^9 @5 t
  v# t9 t6 U6 k% J
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! q5 U7 ~; T; t
        .leds = da850_evm_tl_leds,& e2 m* f! [0 w" u2 h( N6 U
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 Z9 g$ i% p! i  O) z% _) r0 q8 v};
3 Q6 z! R+ Q: A* u3 Q! q
( q- V' i5 D7 O- V+ b' e- N" Istatic void led_dev_release(struct device *dev)6 i, W/ c+ w, X0 u& P, m
{
& ?- E3 T' N$ j' E" O};2 ^; f5 m2 a2 ?/ a: Q
$ A3 h& C9 Q! s; l  n
static struct platform_device da850_evm_tl_leds_device = {
# x6 G7 r" g* S; X1 j7 n        .name                = "leds-gpio",
) O; p$ Q  d# k1 i5 C- J$ S2 t        .id                = 1,
* G; @! Z' |0 z1 b9 |6 \+ X$ ^1 R1 T        .dev = {& _  G6 U4 t& [1 m( l
                .platform_data = &da850_evm_tl_leds_pdata,  g! b6 O7 }& k1 q* p4 Q# [! x3 a
                .release = led_dev_release,$ R1 ]* g* E( M6 d0 }) _
        }
4 ^5 j+ B4 k5 ^+ B" Q! f1 S};
- Y* \) o6 V% K, ]/ p  |7 O, d9 g, H
static int __init led_platform_init(void)) W3 K' B2 F8 T( P, s
{
1 h8 f$ B+ v8 M1 Q* c. Z0 F        int ret;
: f( a( V0 @  L* I#if 0
) B+ B' r6 _2 t) ]  U        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, D) k  i* ]; K" @9 ?        if (ret)
6 E3 ^7 E! X: t                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, @: r' M7 }. y- |                                "%d\n", ret);) E3 h" M2 S4 z$ J# T
#endif) ], i. N* O7 }: s: Q
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 J7 b: I1 o% N0 |- n        if (ret)
! J( G$ f+ O# u6 ]% J6 W: d- G* |                pr_warning("Could not register som GPIO expander LEDS");: k/ T; {/ ]' d% ]$ `8 y9 I, M1 M# N
        else
: F& j2 \+ b" _9 F  w% z! e                printk(KERN_INFO "LED register sucessful!\n");, t7 z  e6 L+ s; O
" ?5 Y* w  V- P! Z" v& i
        return ret;
. z' [0 u' j, Q2 [! o" W}/ t  K0 V3 S0 z* u  R

! i  f5 a$ D+ X* U' ^# {3 m( x$ d, vstatic void __exit led_platform_exit(void)
& X- w7 t2 P+ [9 b9 ~8 W: v+ R) n{5 w; K/ _  F$ l5 L9 C
        platform_device_unregister(&da850_evm_tl_leds_device);
( T5 p, X$ ?( [' ]# X3 p2 @5 S7 a6 r6 V3 x2 t
        printk(KERN_INFO "LED unregister!\n");
3 Q; R9 {4 s& g  A& ^% O4 `}& h8 f1 B' p$ ~
5 M) P: M. M  k* T7 M8 J
module_init(led_platform_init);; d1 b/ C7 X; b% d5 q* }9 M
module_exit(led_platform_exit);# ^8 S* U' V9 M1 R% u) O( N) _
$ |. `/ s7 T& Y7 S/ \) x! S) }
MODULE_DESCRIPTION("Led platform driver");% `0 y+ z' f/ Z3 M9 i4 [
MODULE_AUTHOR("Tronlong");% \/ H! |! G# B$ H0 C
MODULE_LICENSE("GPL");( T; h; u1 R7 u" h, L; u% F- Q% E

2 W! I) _) o; U9 N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-29 15:52 , Processed in 0.040337 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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