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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
0 V/ ?0 F+ y- e/ p0 d" p; v! O3 Y5 J- @. p
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的0 v5 U, n1 o0 L* g9 \2 E) I

! E5 C! z( z* A9 B& W2 V, c" m之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?$ i  D6 n2 X5 C% o: L. z
" m$ G. ?2 p4 p5 V! 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:140 K' z; }6 v' z. w: p
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
5 l6 I& j( Y# y7 b, K$ }
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:* I, O! C. E  w1 ]3 W" [
#include <linux/module.h>
; ]7 `, R: V7 d8 J6 A
1 p' T9 k. e- y% x8 i" V! t  W#include <linux/kernel.h>
- }. s9 F: R) l0 n( s3 x* K% l' |) N; l0 I; V! H4 v
#include <linux/types.h>
' X5 e) p' O( u, P6 E
; ~% e* A% e3 c% d" O2 p9 Q#include <linux/gpio.h>
5 ]7 s+ a, h. r9 Z9 x' ^9 H  F
4 o9 e" n* M6 ?) n$ }% S#include <linux/leds.h>
8 k( `( w9 y: q# ~) i
& P1 M+ C' J8 n#include <linux/platform_device.h># h& c) l! Y  w6 _2 g
9 m3 F  C8 ^$ X
3 j* ?8 t( L  g3 T' X

7 y# P  W+ p$ b$ {' v#include <asm/mach-types.h>0 d' \3 N! D6 X3 L; L8 ?
6 P2 G* Q3 l8 |1 T
#include <asm/mach/arch.h>
, v2 Q$ o: |2 X3 P  i* s4 E1 h& g( G$ n+ C) y
#include <mach/da8xx.h>
, ], |# S  x8 |9 t
/ r2 l+ N/ m" R' f#include <mach/mux.h>
7 M, }$ V6 V8 q8 o+ L. Q
' M' B- O6 k; H) p- h' ^. L4 \6 c  r- z& H

3 b. H4 i: Q- G#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  G) x+ R. w' S, h! y0 h- I1 ^* @

& n& O* i, C" x! c#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" s( Q, I& T+ m. J
+ o* M# h* P6 N7 a3 T#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ @8 A% |0 |# V/ W# F( [
) f6 _( y, M" F+ o/ F: I# D#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 X7 _0 o* Z7 {0 ]8 P6 [! G/ T0 \7 y5 g; R
#define DA850_USER_LED4 GPIO_TO_PIN(6,12). T( {- J/ Y8 l% J6 g6 K

8 z4 \% m! B0 I: Y1 n#define DA850_USER_LED5 GPIO_TO_PIN(6,13)4 H; m2 ^1 c: T! b% H. \3 _

) w% @9 O( ^5 a+ ~" d9 t( t5 P' G6 p' X( P/ _1 j: ]
: _9 x- k8 ~- R0 r4 H
/* assign the tl som board LED-GPIOs*/
$ N7 d3 F4 G  \& h0 i$ \
0 q5 X# m6 M6 m5 S" Tstatic const short da850_evm_tl_user_led_pins[] = {
( z" I" |, {- B  f7 N, ?% B
" X2 y; H1 S( R: n8 m4 I) [5 }        /* These pins are definition at <mach/mux.h> file */
$ G) V' s+ i7 g$ Z. P6 p
- H- y2 t  [3 |( {        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,$ u7 D. {" F- O( Y
, R+ r# a, x* Y* k, k2 _1 {9 p
        -1) Q1 J! ^# d, y. M! i; Y

( C- x5 ?7 m, n# E& d! t' ^};  A+ m& m0 [. W# k3 g

3 ]8 T0 _- r8 `! C. y# A
) o- X( o% j8 }1 Y; K
4 u3 V$ F7 o4 B: y- cstatic struct gpio_led da850_evm_tl_leds[] = {& y$ A, U5 w( o- w& \
0 p! q8 p  w' a/ ]; D" i
        {5 N# E* j0 H1 T2 D

0 L  L) D9 c) S* ?  I% R- C- d                .active_low = 0,8 b3 K8 y+ Q; V0 s
! }" J5 H' D. y7 ^/ d
                .gpio = DA850_USER_LED0,( J& h0 O# t) j$ \
2 Z$ |: o: L" @7 r+ {
                .name = "user_led0",
! w8 C$ b4 W8 x# W  F1 s6 g! q: ?" t/ }8 ?0 l! B& p7 b, {
                .default_trigger = "default-on",
9 }! \7 m3 W1 _: P! O7 S# D# |1 ]
/ R* U8 ?' B' z1 i  G$ b1 M        },' ]4 `7 k0 }* Q5 W5 E: ^  M

& Q- C8 ^4 N3 u* E9 z        {  G* M+ }0 K: H% t, |6 E

1 l. a' |- ^0 b. a, Q, m                .active_low = 0,
/ Y- m+ M' m& m/ n
3 o& s) d$ u9 @6 ?                .gpio = DA850_USER_LED1,
& Z: Z3 Z% b/ f; Y0 m0 `7 Q% J' {2 j( M: e4 N: }) N: I; l0 F
                .name = "user_led1",( u9 T! D; Q3 R% F0 o
9 n& Q1 Q. E, M5 b7 W& z: J5 c
                .default_trigger = "default-on",
; X2 s$ S) L/ R) A
' ]+ T8 `% a1 z3 T* w8 X3 c        },
1 q, O' |. r8 j4 N( A; t  T5 T0 D# h2 X8 ~
        {) _8 t2 J& W5 L( p. d

* U4 Q# j& D+ \3 ~. k                .active_low = 0,
- Z2 g4 @$ w! j1 M9 D6 N) a
, k0 @8 R# @1 a; _* B- M) \                .gpio = DA850_USER_LED2,1 |  W* Z# t, a

3 I/ ~: C% f9 ]0 o8 c$ o$ q8 w                .name = "user_led2",
/ q; Z* _; t* d5 _* X- G0 u) a* }: O- O7 O- `
                .default_trigger = "default-on",, H% d; c2 S4 w1 H  a2 K# r3 ~+ q
$ t7 c" {. m( p" J6 m) W
        },! c. V8 i; z6 ?" Q/ o7 w: J' k
9 ^$ s0 ~1 y- G$ \5 Y  m
        {
9 ?0 j- S* x7 C/ g' j* H' i( c. W4 R( I5 x7 r8 d  |( B, f9 n
                .active_low = 0,; M, Z; P& E2 I. R7 K! t! B
# L" u! Q4 K; Q% P5 K
                .gpio = DA850_USER_LED3,9 A$ o+ i/ }7 B* O7 _

2 y$ Q5 D% p* w& j                .name = "user_led3",( ]2 }" P5 z* |& B8 v$ K
1 Z+ A3 C6 Y- t+ T. k
                .default_trigger = "default-on",
# u0 d' t2 }8 i! ?$ b. i* d- ^- c- s& R$ N' w. J* q
        },* q' n( a9 j; J2 E( q, ?, E" f. t

0 ?& ]  c4 i- T* h/ u2 l: h5 R* T& _        {
% E* F9 x) V2 p( M4 a- G
: |- L8 t& E( t5 E6 L3 i) }, M  k/ h                .active_low = 0,
3 U) D+ r& I& B2 Q7 Y' S( f; w3 ]* J& \$ K% C6 ?+ a; y
                .gpio = DA850_USER_LED4,# N2 [  n: U+ s- i3 i5 Q9 a" \

# A+ l! R& ~3 ], X* A                .name = "user_led4",, J4 R/ Y1 h( ^/ g* M* J: R# J
9 N! K3 G4 i( ?9 \$ P& Y
                .default_trigger = "default-on",, I" t% _) ^) N' X

5 V( T  z" t3 K3 ~5 w* ^) ~        },
1 F5 @3 i" _; v( w1 T' C! D
4 U+ W& Z6 a# }1 t( E/ V        {
4 V7 M$ y7 ^0 \* [# c* e7 Q4 f5 L, F
                .active_low = 0,
$ H/ x6 ~7 R& c' X% B# {0 o- [/ m0 w& J7 Q) Y6 j" A
                .gpio = DA850_USER_LED5,
  l: y$ C& |/ P( R/ H$ ^1 J5 B  f/ a( Z, y4 H3 K# P0 ~. n2 i1 Q
                .name = "user_led5",
& z, l& J: p4 v( D7 _! H
+ ]( H  B8 g" t# }6 j$ I4 |                .default_trigger = "default-on",0 m+ F, @% d. Q  f

" }- m" [/ v6 c3 V4 ~$ b' C        },
3 W7 a. U- k( V) v! M8 q3 ^% a1 t( x/ W
};
- M2 e0 N' |5 ]8 i7 ~, u8 ?& t
2 X3 y% B4 o% ~. S
0 w! F3 L$ y( ?' K
0 s8 X; s; e& jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) @$ h3 ?  v" S
# q* F6 y1 G/ O$ w4 b; t
        .leds = da850_evm_tl_leds,3 `/ ~2 W9 Y; U7 G7 F; u

+ t- a7 ^/ C% }$ H8 `7 b        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 m6 n' M2 I4 r8 a* u% X
, ~0 t2 a2 q8 a1 a" k  K};5 B/ ^$ H: q! q5 x- L( ^- F+ p4 X5 G9 M

6 q6 C7 {$ `8 u0 d
' _' O4 D0 [% x- w3 |& O9 M( p" }
& l& |# S4 S+ G" I2 Z) v3 Jstatic void led_dev_release(struct device *dev)0 P% }. D5 `& \2 k% \- i& C  l0 H
; S1 l6 q" q, d3 l: p" o
{7 h% y' D3 q8 k- K& _( f
0 M# ?; O% Z  M. d  T% I, i0 r
};
5 h- k5 g( S* L/ i" t5 O8 J
$ u; ~/ `; T+ Q) j/ `9 e. z
6 }5 X; a$ }& `
( G! y2 F$ k* a/ S1 Vstatic struct platform_device da850_evm_tl_leds_device = {" V6 I7 w6 z) {4 ^' k
, A3 v: j# S8 e) e( @" b! A, T
        .name                = "leds-gpio",( ], _9 `2 N1 M* ?, V( K

1 d; }) r! c  N6 B+ N0 [$ t$ c        .id                = 1,8 H7 U$ d: w! M) ^3 m

3 b5 ^7 P, m5 L" u& ?3 Q- I        .dev = {; N4 g) X- B1 B2 p5 J7 q! _

, s  O& e, H, G0 q( L6 @3 v                .platform_data = &da850_evm_tl_leds_pdata,! Z* G* {) N5 V: l3 p
# s8 g( d$ T# K$ _( b
                .release = led_dev_release,
  T3 R1 P" Y0 m" v* L5 C& n
: ^; M1 Y9 w" v        }& U% [5 i* q. q  `

3 i' j( s4 o+ c};" \3 S7 m* I. ?/ R1 m5 Q

1 w+ a' D( Q( ^+ U1 w* c. F  U
$ ^6 Z' g" w# Q
/ F) w4 {  X  f% ?" x( H: g- Fstatic int __init led_platform_init(void)( l7 k8 T3 F4 h$ `" L4 @
' f0 e% z1 M" y) T8 N" [8 R4 m8 L
{) x: y% e) W! N8 @  f6 p3 @
9 v* u0 P( c  a' R% ~
        int ret;
+ H6 L1 t' e& N- @, U' G- Z! _8 r( R6 b+ }
#if 0
3 E. R( k- k7 D1 B/ K$ d! [9 q7 x* J
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  y* p1 e& r" U* e9 Q6 j# c) H

- Z9 x* W% f/ C3 Q' P( F        if (ret)) A) `: o6 I" j2 [5 b5 A1 t: ?5 x

1 g) P3 b* m8 q: X4 I9 K5 K4 A. z  e                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' N$ o" y6 d# f& l# C1 n7 Q6 h8 _$ u! d
                                "%d\n", ret);
& w; ?4 r4 j" z8 z- m
3 J6 a. U$ y, C1 X- U# Z, y8 Q#endif
  \5 ~4 A; E$ h5 x/ c4 @7 b! g: G6 ]9 R8 H( N8 X  W
        ret = platform_device_register(&da850_evm_tl_leds_device);
! Z5 V) q* G  O& o2 A1 T* v8 D$ a  K1 ^6 W) C1 V  ~7 [7 e* `2 w
        if (ret)
  A8 v  Y- O0 |% s5 i' F. m1 z2 e, G" G0 X( \5 l% x
                pr_warning("Could not register som GPIO expander LEDS");9 q) J3 Q1 o8 \" {! q* `

0 N0 M; U" d+ X9 d2 k& H        else; G8 i: m/ h* r$ `1 A, `" p% ^

! h; ], {2 p. p                printk(KERN_INFO "LED register sucessful!\n");9 Q; h# f  P& u- Y9 a8 o9 V

, C4 b( P2 C2 F0 ]4 Z
- }1 N. ^5 [+ C+ J' {/ @
8 v1 b- [/ b- N6 j0 f        return ret;( M, C  X" M8 X& j3 T( j

# B' ?1 T2 k& I3 K}. j6 E0 f; u, b" J

! u0 c9 d. p) X( G' H. `5 H6 Q
( {0 Q; L+ {% e( {- g' j
/ K) W5 z1 E5 {/ l3 H8 Nstatic void __exit led_platform_exit(void)# v5 w( ]* \4 s% e. ~' s3 I0 }

; ^; x4 ^' B1 B# r# D2 O1 X{! W6 K/ |2 L8 S# C

0 {, D& K, G3 ?        platform_device_unregister(&da850_evm_tl_leds_device);
' e) M" S" G! f1 l0 l2 r# M9 L$ I1 J
6 u! T! J: ^+ j0 _
$ p& k9 F8 u7 u: `! {7 Z2 H$ Q) i( f9 p* {! f
        printk(KERN_INFO "LED unregister!\n");2 T# H. C* ?* l1 B7 [" ]9 ^2 e) M
( B; P0 C/ S" w8 _, O
}
& R7 Z* j" [7 Q9 `2 z8 _8 m( f+ T
/ _9 l: T$ P) O  p: O8 t
3 y! A2 U0 p" P  O
2 N9 X' a/ E+ o% gmodule_init(led_platform_init);
; ?( i8 q/ W6 P7 d' v! @8 A8 V- b/ R0 L
module_exit(led_platform_exit);- L3 }8 H/ J+ _6 T+ \" N9 G5 J
! u; H8 ^0 Z8 t& k/ B4 h
9 s4 D3 Z2 B: m" t4 h( S0 k9 e

/ ?) s6 {- R. k, ]2 S) Z$ _0 QMODULE_DESCRIPTION("Led platform driver");# ~# l! i7 H/ [, `
- W. o# Z; S2 f6 V; K$ q! e2 ?! [, Y% h
MODULE_AUTHOR("Tronlong");+ {) y% [) M9 f- p3 p) B  J
) m" N' t: Q( E. x/ y
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
7 t* M; r. A$ v7 |( o! a9 a' T

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
1 _/ Y7 I* Y9 F, N! k; y, p您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
' j7 h" W! \% ~4 z! b ...

/ h) v( k) D- ]' N( b3 J( ]好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。5 X: K7 I! s# A2 s: r
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-3-30 16:12 , Processed in 0.044320 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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