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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
  `$ M5 K3 L8 P6 [9 G
9 J. }; k# K1 N& f# T+ y& v) D! T1 ?& Z请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
0 P/ X4 _/ J' v$ d5 [* P. Z' j2 F! _# v
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
% C# {: l) G# Y) u3 L4 Z$ A9 y: s' N6 K

本帖子中包含更多资源

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

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
3 {1 S0 R4 R5 ~2 \linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
" x% L0 _# y+ D' R# J
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:5 u3 |1 c! K. R
#include <linux/module.h>! i' U$ k4 n- ^, t4 X6 H
% {* H5 f' F9 J# U! k8 A0 s
#include <linux/kernel.h>8 F& f' f4 C: b9 J' W8 B* g' K
0 w: f4 p5 I4 p; [7 G7 f
#include <linux/types.h>
3 x9 X9 S6 l/ W& w3 {; D
* b! J5 j: N  s* m#include <linux/gpio.h>
! \/ Q( G/ j& O
0 z8 {& P' I: a" I#include <linux/leds.h>1 J5 M6 p$ i9 h# r
  d7 \! V* l, Y2 K4 f4 |4 `
#include <linux/platform_device.h>
' O7 S/ V5 p2 k9 Q7 Z' G& B4 W6 G: Q
5 b1 l6 `+ m7 V4 H5 K/ z

, B7 K3 M- O" c#include <asm/mach-types.h>; N) c& L* Q: ?/ x: c

. t# p8 ]8 C5 E7 m6 s$ [8 B+ ^: W1 r#include <asm/mach/arch.h>: }; @6 O9 Y2 D! E& c9 {- @

' w$ |2 }7 S& Q#include <mach/da8xx.h>& D  W! Y! X2 }6 ^

1 V5 ?0 A9 M3 n+ t#include <mach/mux.h>; ~/ x8 ^$ d9 Q
* k: i' s3 h* D- y+ ?/ I' e  S6 A
; @! U3 Z6 R2 N4 t, _
7 ]) [  ^1 e+ ~
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 n0 g8 z" }( i7 k; P# D

! \6 |0 g5 W1 c' N3 J% O+ y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 x" i) j) m; N) k: g2 B# z& S* \

9 ^4 w; s7 I9 D' }3 Q/ T#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 U6 u" D. V- |7 N% `/ |' U
0 b4 o2 M$ @3 K4 C#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# {0 d1 l% ?8 y! |8 q, k/ L) Z) O- n7 N
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)# D3 ~' Y8 F( `

: z' [, M# u; Q' ?; ?: W#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
7 z- K2 U1 l/ y. e) D
# d2 p1 X- v& P) v+ I2 L. \: X' J  `7 h1 h% O+ U1 H. r0 F+ b: T0 G$ l
8 Y, m, x+ r) ^/ A
/* assign the tl som board LED-GPIOs*/
2 G+ H) |( a& d* A  }4 U7 ^+ O0 q- I  E: B0 q) ~) z( @
static const short da850_evm_tl_user_led_pins[] = {, G5 N7 k  W$ H0 Z1 t

: K! W0 Z" N5 k) S0 \        /* These pins are definition at <mach/mux.h> file */5 x5 f) M# s. G0 m+ I' i5 G
: M8 q, n3 H3 o7 z% R
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
; W2 Q$ U: E2 g. {; @9 ]& w2 X& i2 d/ k7 Z
        -1( I9 `: r8 d. T
4 D" k2 E) K2 p$ l) w0 H
};& C6 Q4 W% f, P" E6 t' h
2 g" q; \3 f; K7 @; `4 F

& X, D$ ~: |0 d1 f* l9 N
/ Y$ |- H" W& ]static struct gpio_led da850_evm_tl_leds[] = {, A: F4 r0 ~1 W6 U, R
* y( J0 l! z  a6 Q. w& |/ u7 D
        {8 Q# l* I8 H$ [2 w" Y1 @

4 w! |6 n- C  [/ r- I                .active_low = 0,
7 f& b) t9 Y1 R9 h5 r; f, c( [2 p0 ~3 P8 ^5 h
                .gpio = DA850_USER_LED0,
: k5 }5 r* }" c0 L, f/ m6 a$ d+ X- b! f* s! }
                .name = "user_led0",6 ~) i5 r8 k3 k
( I) Z& d; z( a/ e, h% K
                .default_trigger = "default-on",1 e1 \3 Y! v7 O# d+ C/ _

7 d8 g5 o$ X0 Z0 K        },
) x6 V& z/ f3 v8 g" g* @* N' F( j! V1 e4 @* B9 X+ {
        {# T* ^- i( I+ J4 [7 b8 X5 @+ f
* p+ o! }+ y/ w. R1 s7 v
                .active_low = 0,
% u( h; \* ~; B; \9 w' J( B6 l; F  w$ ^8 H) o4 z
                .gpio = DA850_USER_LED1,
- }0 N. U3 \+ ?! p6 O) u% H8 p% l. `/ h+ r4 T3 _
                .name = "user_led1",6 u3 v5 U7 E& ?$ S
% [$ h. p( ~9 p
                .default_trigger = "default-on",, k- ]2 {0 J- F1 W2 h6 a

. H) X* R! s$ _/ a: G        },
) E. M+ h4 J: y
( o$ g, K  X9 |( h0 z) `+ F  L1 h        {# ]% C" U/ D+ K

9 r* |  q" @/ H                .active_low = 0,
% g4 X9 Z; G& T- x( e) r+ ?& x) e3 z9 O( k! q3 |, N
                .gpio = DA850_USER_LED2,6 b2 h/ z0 V4 o. z
3 I+ k5 E6 j4 v# ]; m
                .name = "user_led2",: `1 E/ ^9 O0 a& h

! s% ~  |) a2 Q7 x4 d                .default_trigger = "default-on",  a4 d7 w( V. D

3 k, K, m' \, x) W, X+ W& q        },4 I! u! X6 t( P: Z& s
7 Y( P+ N0 f( O% Y
        {
$ T+ y) [' k& a! Z/ V) ?  W2 @
; k9 I1 w- e; O' }9 y& q7 D+ x. }- X                .active_low = 0,+ l# F$ z1 l5 ]' u0 t; X0 D3 ^7 e6 P
  F+ c  q3 M8 L
                .gpio = DA850_USER_LED3,
$ M7 o$ m% u  p* A% \3 N1 C8 ?
& d. K. u$ u! i# u1 B7 j6 |                .name = "user_led3",4 F% B3 @) R8 M% P2 O
9 B2 q8 `  y7 a$ K* q; S2 }
                .default_trigger = "default-on",# f2 E/ \/ P2 W. |6 w
: g) K4 {" b- w( P
        },
. }) \0 S( n% X7 d" o
$ U2 ~  r4 H7 K        {: A: U2 _8 @8 j2 Q3 P
, e, }) I& x- F( N' E3 a1 Q  `4 p  J
                .active_low = 0,1 n& D) Q. P  R# d% b  ?0 w: w5 Q
: Y9 a' K9 H# z8 H: `
                .gpio = DA850_USER_LED4,
5 S% M9 s9 T# P2 s- X& \
" m* B) }  u7 B6 _0 O2 C                .name = "user_led4",
1 T) j: ~, c8 j' A+ B, i' |! t8 |( Y8 {) ^3 J
                .default_trigger = "default-on",
' h9 F4 b* r& X9 x! X- F- q5 \, I0 Q4 b+ K: A
        },, }+ P0 J$ ]' B; \# O) F
+ d8 e' W' I& s; q  l1 S" [$ n" d. v3 S2 Y
        {
9 _2 O" }! J7 D8 h( a+ _' I  e0 m4 b8 q! q" I5 S4 T, ?
                .active_low = 0,
. Q) t, k' q5 g! D8 b% K, T
6 M+ ]+ d; i! G$ V                .gpio = DA850_USER_LED5,
/ Z7 p, c5 A( q. `; |! k! h& ]
: l2 g$ o* }" w+ {; ^+ ]                .name = "user_led5",
( v2 w! A4 i! W" q& ~0 G. H% e' ~, W7 d0 D" z0 m* E9 Z
                .default_trigger = "default-on",
7 b9 }2 O4 r! Q7 |& b( s
6 l, Q8 t' `" N# G1 P  |5 c' b. T  j        },1 ?# t" d7 u0 x* V

( d. z& V" k% Q};
* n% o) ?' A4 r% ~7 h. v" X! K& E  U' a1 e7 Z1 F  B5 K

7 S1 F6 F0 L( c+ B  ]; h9 {0 K0 {$ s9 J6 G( p/ L$ F
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 K! d4 _2 U2 o8 O! q6 H2 m# a

6 L! R- l* ^, |# D- M        .leds = da850_evm_tl_leds,' i$ k" O% ]2 p1 k2 c

( h/ U5 k3 Q# ]- |* Q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; P! }# ^8 R2 |

) G: o3 M0 G' X7 d: K};
2 {$ }- o1 z/ n7 S) C2 B, A4 c8 x5 L8 O- b+ Y9 q

  w+ n: m/ C1 t$ a( B8 d" Z* k! R9 l# h0 N( K
static void led_dev_release(struct device *dev)! }$ z! |) N. w# T
0 q3 R& s# T) K
{
0 R! H5 W1 f% W* ]
/ ^$ P' M# {, Z* T};
1 V' r. C: w, K: F4 k- @& ^& w/ K) i7 H6 Y9 q. I7 {  D* U. w

6 G) D& T$ c0 X0 r4 F2 n/ Z# L' T0 l) u/ F" |2 z. A( ]* j
static struct platform_device da850_evm_tl_leds_device = {
; y; S. z4 S7 j/ z; _+ q9 k6 u3 P# L( r6 [( I/ W
        .name                = "leds-gpio",
3 P. _0 r) m) {: _( A6 d8 E0 z" Y; o. K9 w8 {4 j/ [
        .id                = 1,
" t1 o7 b8 r* Q4 f6 {
( }: Q# ?1 L5 @. [5 ?8 ~        .dev = {
% g8 r$ _3 ~  n" A5 x# G( _) K: F! l2 H" J$ Z3 Y; M! f  P
                .platform_data = &da850_evm_tl_leds_pdata,
8 z0 _6 {6 Z0 u% i5 o( ?3 ?0 l# c' w6 ^
                .release = led_dev_release,% _( w( R1 c% N

8 g5 ?& h+ h' n7 |/ L2 M* S        }
- \* c1 Z* Q' V
3 q0 x) s  z$ j4 A+ B, i1 L  m};
2 _2 D  h. J1 Z  V+ [+ M6 C/ {: y* R' u, O; E

0 ]2 ?, |& V1 _
7 V6 G7 p, @4 b8 q4 [/ j" xstatic int __init led_platform_init(void)
: H: \4 Z2 C! H0 E* ?' h  ^* j) ~' ^
{
' |. C  N* D! Z/ q) N% J, Y) b4 Z. L' p+ y3 f2 R1 z
        int ret;
0 n0 E  ^, Q3 e! b6 `0 N* m' T- A
! p9 y8 s/ g  W  y$ B; k#if 0" \( M5 j# E+ K$ u" f  U  B; G
2 ~: ]& K& P9 `
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 n% T" U/ r; {$ X$ h# K- i$ d# {
# C  N0 M7 H9 g& @- t        if (ret)% h6 Z$ U  B- `3 q7 J' w$ G
  j# }! a% q4 Y) Y* z' N& h
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ A6 H( u2 w) Y6 E* S' J8 u8 a5 v  N% E  f
                                "%d\n", ret);
5 \9 T* S- \0 U2 H* ~: N, W6 P4 s- ~3 F- W0 s3 h; d# a- z) U# M
#endif
4 e$ u+ F6 U  q. P( U- c% h
+ V' T, _0 E6 ?% n' c7 V5 ~        ret = platform_device_register(&da850_evm_tl_leds_device);
7 m+ }# n% E- E4 h+ |# n' F9 K+ H" j+ \5 T$ w
        if (ret)
5 i5 A* W% T  U! A0 L. T0 ~' O$ y" y, l
                pr_warning("Could not register som GPIO expander LEDS");3 p# O4 A9 K/ q
0 S) p4 m& f0 |
        else4 [7 d) E# ?2 ?" X* _* n

, s( |- Q- R+ o* m                printk(KERN_INFO "LED register sucessful!\n");
0 g" N( H) f1 f( Q3 s: o& x4 L& {4 @: K* x, `: d
2 x! ^% S. w9 Q$ z

- a; x8 z) {- P0 z, x8 K5 G        return ret;
* A+ ~; U: S+ `+ Q; I0 x  @! g* A8 h1 S( x% S2 g
}
/ w" a5 P. l6 c) d
8 @/ \0 r! m( w8 q% J, G3 `1 W% \+ E  x
4 I. C4 X* Y8 j& @; X( c) v
static void __exit led_platform_exit(void)
: ], X3 d/ t: `! j: Q* ]* h
" ^7 ]* l, Q& a6 G{' R$ M2 d  A% x# G+ j
( q! V# L# s$ N# z  F* T
        platform_device_unregister(&da850_evm_tl_leds_device);
9 [+ Q4 a9 e" N0 e- M# u4 k7 V  ]3 b( j0 w0 W9 B; `/ c, L/ z

1 S# p5 V% H7 \2 j" H. F0 C7 w7 c- w+ v- _' D
        printk(KERN_INFO "LED unregister!\n");
* C; F; D5 F- V8 n! E( T
6 L# d) ^* ]8 P9 j, K}- C$ k  w6 s" m& w% t4 e
" l5 F, v3 z9 y

. w$ J, P5 H/ C/ s8 ^9 k8 e* U# a% a: F( g* Z& P( }9 B
module_init(led_platform_init);
4 [3 S8 {+ T1 O9 q: d; s
% q' ]$ ^5 w: zmodule_exit(led_platform_exit);; W! W8 z; a8 b6 e1 B" H. o
/ }9 u9 h8 m, ?# x% L- y2 c: _: V

# K! }2 n, P3 a- R
9 @- U; z0 u8 \0 j6 E( O6 bMODULE_DESCRIPTION("Led platform driver");: x, c$ d6 o6 \2 m  G

1 Q- v+ E8 {( C; ^, F5 c) DMODULE_AUTHOR("Tronlong");
6 M5 b8 @% Z( u2 K' A9 P* G6 k7 e6 y) O' H
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。1 m8 h' v0 R4 p

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32& b9 W& V- E0 k0 i1 l9 j
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
, @. b0 H% Y9 L2 ~/ x* ~4 G; | ...

* s( o9 m: w& M5 x好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。  S9 Q2 K% Y# D& G& K' u
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, 2026-2-20 17:45 , Processed in 0.046860 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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