程序的运行问题s - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8378|回复: 6
打印 上一主题 下一主题

[已解决] 程序的运行问题s

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
* `9 R  F- g* y+ w
" H( A% L8 n$ k" n请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的# S. Z! j! E% n5 z* T
3 o7 _2 G8 G6 P1 }; D% [
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?4 H# l2 T! B) z1 b

& D& }6 q! `; J) x: b

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
沙发
发表于 2018-12-14 17:14:42 | 只看该作者
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱动,通过应用程序访问驱动去控制硬件设备。
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
板凳
 楼主| 发表于 2018-12-14 17:29:27 | 只看该作者
广州创龙莫工 发表于 2018-12-14 17:14
$ w) p1 F5 r5 y/ ?linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
4 Q% J+ Z, f5 s' M& j7 Z9 A7 c- J
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:4 z5 w5 E- v. l4 o' d2 \$ k. Z
#include <linux/module.h>) |, y4 i$ f1 }( f% G

) \9 Z' ?" l8 X' _  d#include <linux/kernel.h>
- t0 A2 s7 m3 Z* l' p
' F  K1 K7 c, o2 N: ?#include <linux/types.h>
3 m; U- [( ~3 n
- S3 L& C' G5 F#include <linux/gpio.h>
% f  I, r, O2 [# L. z! D. ?5 Q+ A1 N& o6 [. p* b4 d
#include <linux/leds.h># t1 T/ o, r) y- h
# ^' c3 p( D1 \# x, \
#include <linux/platform_device.h>
+ [6 B  u4 I+ F) b0 ~& Y: g
7 d% r( t8 |8 @* N" |) ~- }) M6 `6 ]5 b/ j& c
* z( A4 K4 m% b4 h8 j8 h" P+ R& p
#include <asm/mach-types.h>* {. i! J; w% v( a
& c$ p+ u1 O2 c( |8 G$ H
#include <asm/mach/arch.h>
/ a3 {* h" f# L" v3 z1 W4 }. o! ^! J7 t2 a
#include <mach/da8xx.h>  K7 O- `6 e2 k5 x8 m! p; z+ m- C
8 X4 ?+ T* U* B: L
#include <mach/mux.h>1 m  D7 m2 ~: k+ m4 D+ y! x
! g8 a! g" Z9 [2 V9 p# l2 u& Q
/ k3 F: X* O4 t- d/ d/ r! k

0 R$ ?/ F0 V, a, Y1 m$ f#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). i  i! _- ?- n, ^. z
$ Z2 p( [  V9 h2 `& }4 S1 c' |' i" \2 M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: D6 P+ p; j5 B" k
6 A. P  h- ], t8 q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 h. l. Z7 d) }

9 i9 {9 M( f. v, g/ A* e' H7 ]#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: d" V; T7 V1 e+ J/ v6 Y0 X8 V% N4 l! Z1 A* w
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
3 v  ]; p' J- J, s
/ k! a9 ]. b, y1 B; a#define DA850_USER_LED5 GPIO_TO_PIN(6,13)2 N9 k4 b* l! t4 z* g: j$ X
1 I( w& q0 d0 h6 z& o
* G3 }* W3 D7 ^/ x( Y. B7 f- a
7 q" V7 d! D1 O
/* assign the tl som board LED-GPIOs*/
& h) C! Y) a/ b5 Y+ w4 g: u' N' Q! @. I9 {
static const short da850_evm_tl_user_led_pins[] = {
4 Y7 I0 `* d- _+ j$ D1 A
9 J# H& k& v" Y% ~        /* These pins are definition at <mach/mux.h> file */
4 @6 M2 }9 s! Z3 A3 t
5 j7 S  w) r6 M/ _        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
: S/ c. s1 U1 ^+ o( }
6 S* @1 o) h. X, p8 D+ c. `        -1
, L* u9 h0 N) p9 w/ B7 c5 J+ r/ ^& q0 U- ?$ V
};: G0 W1 ^% x4 n$ m
3 s8 _0 w( l8 ~; f) t- |9 W  h: g  {
8 r9 z# m3 s$ U% E. W  j. p- O  Z
: l+ Z" Q& y2 \/ c' l9 X. K- i0 Q) r2 I
static struct gpio_led da850_evm_tl_leds[] = {! R/ ]( {3 D: W" _% q/ H
( }$ _: |3 D8 ]- M! r# s( O
        {
3 \$ @7 z- X+ B2 T' S, u* F0 N2 v# l3 \* \$ [1 W' I
                .active_low = 0,
1 _0 E( r2 z. a* A  \. E! U6 y# p
                .gpio = DA850_USER_LED0,$ G/ `3 \1 [0 P. s8 U  y
) }5 o7 {5 E  v5 @
                .name = "user_led0",
8 S: s0 t: O. N+ v- R6 l" m3 ^
: Z' x! t9 w0 h                .default_trigger = "default-on",
4 d$ b3 U5 ~: P+ Z% L1 r$ c3 h( d7 M' l; o! u
        },: C# `8 |% ?2 [. N! h# b7 F
% G- D& D- x5 B7 v6 Q3 L1 x+ C% w
        {3 N; b) {9 S' g2 t; v( W
5 i; V0 X' Z* K# b( ^
                .active_low = 0,
* b. L& K  g. z0 o( ], p" T2 t& R
8 T9 C1 ?7 C! e* g2 o                .gpio = DA850_USER_LED1,6 L* l; |1 A* D! O$ g$ E

. p( P$ e- {. k4 t                .name = "user_led1",5 u# H) h7 f* l' y4 n" m
( J% Y7 Q& L1 q
                .default_trigger = "default-on",% Z: k( w7 _- K+ b9 K# a

) p' O8 u. G5 f, C" s5 ^" w        },2 U2 o# O0 }3 P* b; I0 p
0 Y8 }# p! \) A3 z* U
        {; K! _: J% l9 D$ ?, C3 t* V# j0 r4 x

; H% N2 c. b0 N- b3 B                .active_low = 0,
/ Y6 L9 z" H' Y. V; j* u: r* m$ n. C& H$ f& ^7 s+ H8 n
                .gpio = DA850_USER_LED2,
" d- s& H- p0 t2 U! G! F6 r2 m% Y
3 G  w2 v; @4 x. a                .name = "user_led2",/ u! K" M" N. C- Z( l  j- s
) `. p) S- l% [4 n
                .default_trigger = "default-on",& a9 L# V6 N+ C
( S4 W4 \: @8 E# I- j$ S
        },( f  G: l# U5 w3 [4 j: S

) k3 Q- x3 e  e7 G' D        {
. e2 [" B6 `. F' {: Q! V2 \# U; a8 h6 O( M  A& S6 S; M# h& R* R
                .active_low = 0,
; V: V7 O( }+ D9 s1 y7 j$ H9 |0 ?, S# w1 B4 m0 b
                .gpio = DA850_USER_LED3,* M4 i7 ^! R$ c2 k! L
" b% I4 E, Z9 X8 j
                .name = "user_led3",7 B* _- ^( q$ o% g, g0 G! P/ {5 K

- Z( O+ `( [/ t6 t) r! `% }                .default_trigger = "default-on",
. _! n" U8 e' g4 U4 [" C0 K( w7 b. d) o# [: y: F1 M. n
        },
) C0 Q/ ?! A/ e  r/ o+ m' a* ^" M& h5 P) L
        {
$ ]% H. j  D5 ^4 y& V/ a8 X& Y$ w4 t/ R( s
                .active_low = 0,5 g7 o% l$ u  H% @) v8 h
1 Y6 l+ S: _4 L& L3 N" L
                .gpio = DA850_USER_LED4,
+ {4 {6 s; ^4 U( {' B4 e5 e$ A. h3 o( N& }& u; Y* j7 M- X  t' q
                .name = "user_led4",0 y' b# _/ d) t0 n4 U3 A& @+ E6 U

# o% \* H; z3 i- _1 \; G                .default_trigger = "default-on",
0 a# h1 a3 w  B& G( Y5 @- |; |! U. B
        },
% n5 b1 y- y  F0 ~, ^+ ~
; y- M/ K5 G2 g0 G* `+ V        {: J' E! {4 a- W; ]

* l! n  U7 o/ }3 F# z                .active_low = 0,
% [7 @1 L' J6 g* \3 X7 r7 @: |& L# ]% z( w4 L% I- e; j! h
                .gpio = DA850_USER_LED5,$ w- C4 }6 o6 U: T' b* U4 a
- b1 z2 x, Q8 \8 V& |
                .name = "user_led5",
1 ?" `) I* W2 b1 p/ z' C- v  m2 O" [
                .default_trigger = "default-on",2 X; Z% t: H) q  ?
" x' p8 f7 z+ Z
        },
6 p/ w9 e* ~5 Z6 E" Z$ M- Q$ y+ y* P9 M- p
};' ^: u6 L% ?2 M

" ~$ a( a% D0 C& g- k- @. I- A7 h: `4 y( K& g& H: @

+ v1 J* J4 C' ~1 G" w% ?  s$ L: Tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. x: c4 ]3 B# W8 b% l* }

4 @2 [5 }9 a2 M( ~6 q        .leds = da850_evm_tl_leds,4 t8 g/ F" l8 L3 R6 u8 l2 E

8 p) C% X& h, M# G- G, [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; F6 n) E' C& A0 ~7 O% e5 V
$ ]- [8 p: N& k* G# d
};
* k) X# Q: y; H6 c/ \4 Y! x& a8 r8 B! J, O& y* i+ E5 N- }* N
& i  r! z7 m$ _

- f, v; [/ R. |; j: \0 qstatic void led_dev_release(struct device *dev)
$ |# C/ s0 ^& F4 h. b5 J9 V$ H' o$ l) o8 J2 R% U6 p0 f( p: f: j
{
, N8 V$ n1 O; y% Z. [5 `
8 n, E) ~: G+ X5 \1 V; B};( ?, B0 G/ u( y3 H% U: ~7 M
* t7 L: d2 @: b. {5 s4 g  W7 ?
$ C: t+ \7 {* Q

/ C! n' j" O% V* z6 O) v' Kstatic struct platform_device da850_evm_tl_leds_device = {6 T3 C* V4 O3 E, |! {4 R

6 ~8 |) N3 N5 h+ X        .name                = "leds-gpio",0 p/ E# S$ P- F4 t6 ]( B7 _
5 X9 H+ U& a3 ^" r% \% n8 p
        .id                = 1,
9 p6 u3 ~7 k5 c& n# w& v3 `5 p  O  ?# v
        .dev = {
4 O2 e$ a3 d3 q( ^
7 p/ j' g8 r3 k! l                .platform_data = &da850_evm_tl_leds_pdata,: e* H- U! [0 x1 ~) P

# s6 o# S( _- s  g- T                .release = led_dev_release,
3 ?2 J# x$ f+ E9 d1 B/ p
0 F& u* b* Q) w        }; c& E  v4 d5 g! d4 L

- s9 B3 h9 X5 g7 a};6 L: d' A' s9 x" ~; N
9 ~7 B% k- f# O4 [
) v8 Y7 p) O5 S9 C
& L5 D/ d0 C; F5 ~' {, q
static int __init led_platform_init(void)$ ~! u' F; P! Y2 I, g* u
& F# x/ |  \7 c" W! s$ p0 ^, y  q
{. F" B7 ^9 t) _% ^2 C
3 a5 g+ t; S% {, H+ H: d3 e8 i
        int ret;! z! v% [, n8 [8 q9 [9 T

' z& J0 f/ s# N1 O#if 0
; I$ H( @/ Z  o, R( ~% ~) J$ v1 C* w, H1 K; j: ~* P/ h5 a; o
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! `) J0 P3 N/ h% e
% d+ ]9 v* C% z' s0 B
        if (ret)
& [# l7 B& g4 C  y/ O( y& Q1 A2 t% [7 Q1 ?- G
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. q9 A6 E- N. V; g9 f
! }" v9 {: Q' F                                "%d\n", ret);
0 {- B! j, B( h, Z( j) n" ^4 x* M+ v5 C1 D' }
#endif* A' g2 Q$ r) }* Q% H

; O9 y) U6 E7 L' a) _' y  w: b        ret = platform_device_register(&da850_evm_tl_leds_device);8 @" u) n5 K" u. [6 u% B* _

: m( Q- j. P/ K  y* C        if (ret)" A3 k; F8 z2 m6 I) {2 U2 ]  a

* h! t7 h5 F, o                pr_warning("Could not register som GPIO expander LEDS");8 k8 }+ \, x" f6 B( j

8 ]: c6 o1 {3 @- B2 n/ j- X! Z. p' {        else/ ~9 G* q5 j$ e! ~" n, d5 M
- P% H9 H" \! o% V
                printk(KERN_INFO "LED register sucessful!\n");. s4 [  m' F" p9 [

9 Y9 T; T# k# A# k; g6 R# y$ I
" J- g# H' X2 t4 [- T  K8 M3 H
        return ret;
  z; W8 d! X# C8 K: c5 Z% g
# L. `+ {6 T+ P9 s}
# V: @" P4 h* }2 K$ P' y% W4 f$ L3 R+ I6 _2 @3 I

# p# b  y. I! |% h+ \
  ~0 R# D% H% C1 `) p$ kstatic void __exit led_platform_exit(void)
+ F  u" |5 w' v, p' I3 Q' J: a
/ v2 ~: D8 T7 G2 B" n{% j# l; L4 z- D" u  m! `5 c0 ~
6 x) ?& A' L+ V  @9 p' q! u
        platform_device_unregister(&da850_evm_tl_leds_device);/ I  ?4 d7 ^* z  E
! Q% s9 H: ~$ |. \5 N& h0 W6 T

5 _7 C7 J) i0 e. q% Q7 j4 Q  E+ t7 Y. O0 K2 Z4 Z
        printk(KERN_INFO "LED unregister!\n");
5 M8 G5 K  r& j! w# d1 w6 m/ e" }
" k& b5 z$ U3 @. |& O' x}' f/ N6 @: A6 B  K  ^' t$ X
2 ]1 L! r9 Z) W0 w

) i) V$ j& Y, y1 t2 T3 f) j4 v, I& k$ H
module_init(led_platform_init);
% e* j  y. e/ Q: D. `; M" F/ U# F3 i( v! g4 m/ f
module_exit(led_platform_exit);$ s: J8 h. ?+ L* Y" e# A
6 X) \, s1 r/ L, q( ?

( x" }, o& P: ~, N; N# l  G8 k# l6 l5 y4 R7 e1 N: F: t+ K
MODULE_DESCRIPTION("Led platform driver");- l& S- T! |/ L5 E0 z0 z3 I+ X  X
( P2 y7 Z! x1 R; T: n
MODULE_AUTHOR("Tronlong");' s  q: q9 r6 F% B) ]6 x* G& Q

6 C2 h; E* D* p/ P  w# {7 c7 z, EMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
+ E3 H; m2 E8 a; q

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
; x1 L0 k, d/ x6 R您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。! I: M6 l4 D: |) F' f; ]" U
...

$ d: a. D/ R3 D! v( y好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。; t7 i) j" c+ S- f* K6 x' ~
http://www.digoboy.com/video/id_4408.html
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
7#
 楼主| 发表于 2018-12-17 17:29:12 | 只看该作者
额  还有这个视屏啊  早知道我就不会问这么多了 谢谢提醒啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-8 15:51 , Processed in 0.045423 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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