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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 ( O4 s* Z" d# ?8 ~& W* ]. r
1 f. w# L3 {0 }; I9 N" Z: U
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
+ \5 K1 s7 z5 q; z2 o* ^4 l( s' a. Q" q& {. U/ M
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?* I& x& w1 ?9 e0 r9 d7 b

$ R- ?( q$ N  K( S$ W

本帖子中包含更多资源

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

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
; v  b) D$ X  [1 o6 _4 h' Ilinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
7 |5 _0 E9 v: T4 u9 T$ r
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
5 N0 I. {2 w- N: a% _' w#include <linux/module.h>
7 [* c* y# ]3 R# X1 N
+ E- u1 H2 c( p. I#include <linux/kernel.h>
; q- k$ S% p* t" j7 i$ h9 p+ ]2 |4 d, C9 \) I) n8 Z
#include <linux/types.h>
* s' E( E  ]: f4 Q# g5 Y( Y* Z! n6 d
#include <linux/gpio.h>& R' S# w. G* l/ q( ~  `& X9 r
8 @" M$ t" Q9 L5 F$ J; e
#include <linux/leds.h>
; {$ M' \# C0 }! c3 w8 R2 G7 R" T  H( t" f: J) l% o9 x: ?
#include <linux/platform_device.h>6 _' u# x, M5 k8 P4 D& G! B
, n- z" y# \+ |! _/ z3 ~

2 G' U" N  ]; r' J, ~6 N3 D" i2 y8 `( r9 b6 l# C6 X+ _: A6 C
#include <asm/mach-types.h>  |5 m* m7 Q6 a4 x. E) m2 s5 @  O- u

% w' @$ u$ ]  s& Q3 A( N#include <asm/mach/arch.h>
, T* l- t! Z0 B7 e5 a0 w5 t1 `5 k# P' G2 o* Q3 r
#include <mach/da8xx.h>
) y1 M1 @( P& R4 R4 B) m/ G$ k. k0 t) K1 }& u/ X6 [1 Z0 W( H
#include <mach/mux.h>
- b; G5 a" z9 ~: O' Q' Z5 b: c# m% ~! q5 u* e

0 p+ T! c" f0 B) s! Z: B# ?
5 ]! O' t, r# |+ j* f1 o. t3 b- w#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ b) b" X4 ]  k; j0 q- z1 ]4 j5 }7 Y, [( J1 K, g' s+ O- w4 P
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; |' T! W! q2 h# ~0 ?) ]* w% V5 f5 J1 ]- a4 M. x% {; g% r/ h
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)5 T' {5 u# o" a& A! e2 b
1 A$ @8 N3 ?  e- {4 q' t
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); O5 s- {- j6 `: {& L, Y
3 G* ~' ^$ i+ z/ h' U* L
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)4 `1 Q/ p+ N7 c) m8 N$ X) s2 ?) x& m

" x' x# Y1 v  O; c/ U#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
% |* W! c/ n8 s; H
2 ]  M) @& f0 i
5 d. a" n4 R) j4 r9 p: s( x8 j9 l  W$ b) c1 ]- J2 D) |% D1 M4 X9 ?
/* assign the tl som board LED-GPIOs*/
: W' d: Z. C4 w
- X. K( ^6 P2 c" T/ E# \* e' e8 Nstatic const short da850_evm_tl_user_led_pins[] = {7 m  q: h, @$ B1 N
9 X' y. c6 t0 O. j! q+ z
        /* These pins are definition at <mach/mux.h> file */& C6 e4 w. H* u" p' k
7 [/ }5 C4 @  v
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
0 M9 U" x1 A3 I9 x) |3 n
& k5 U# B( Y) n        -1
6 F- [4 n% K* k% K2 E/ t2 J: P6 J/ X
};
  E& ]- n1 V7 Q* H9 ~# ~4 O, S: {. @+ Q0 b
) E2 J, Y. M) ]% Q6 O
+ c( }' U/ R6 E. A
static struct gpio_led da850_evm_tl_leds[] = {
; ~( n- z+ J2 P: n( j7 _! W2 f2 y7 w: E9 t7 V" e& }, s
        {
" J0 G- y4 E; c- ~: x5 b0 _. h8 n3 k; c
                .active_low = 0,- C8 W1 U% G: G9 A* T0 e, x

" b/ m+ P% I  H! p3 `                .gpio = DA850_USER_LED0,5 x8 T6 K; f# P

+ u7 l/ Z1 U7 Q  J- T, c                .name = "user_led0",
& B2 c5 J; u. H6 v, i, e9 g" q& ]! D, u% N6 v$ ^( D, O6 r
                .default_trigger = "default-on",; S! L) S, H' k6 X3 \# M0 W

4 q& ]" r' b! c! n9 x$ v) C        },
3 Z4 a2 v: v+ }, L$ H0 S
& T* t7 D9 A- n0 e0 z0 @& U        {" L& ~5 ^& S: C

* U) q% P+ _$ R: y+ h                .active_low = 0,
* x) ~/ C( v; B4 Q3 c
/ @5 x3 }, b/ `# j& }                .gpio = DA850_USER_LED1,
, _4 r3 E4 Z1 ?& B6 {/ h7 f$ j, n, {3 P) a# P
                .name = "user_led1",$ }9 d, J* U0 \* \3 X
. B5 \$ _. U6 K' [) Z+ v" m
                .default_trigger = "default-on",9 f3 C3 u* v1 {' M, U0 E

! f9 S% c- j9 J/ q        },1 y' Z3 o, f7 w- E; X' q2 i
+ s6 S- ?+ B( m2 ?5 y/ v- Y! c
        {
, N/ d! d; O- O! p  l/ i* w  t8 K/ n/ d
                .active_low = 0,0 v5 E! c  ~! \

# h: K% u$ ~+ s7 w0 w! ^9 r& n                .gpio = DA850_USER_LED2,
& R2 u6 Q( x7 Z1 ]0 o  g' y
) [/ u1 D; i3 {: w                .name = "user_led2",
3 c) j- `8 f' |: t8 O, i
8 y% y: d% h- @3 n                .default_trigger = "default-on",
2 o6 z7 ?7 }! m: ?2 c" {, L  u! ^* o2 W/ b& Z, y0 F
        },
. O5 i0 `1 P$ u- V! u/ X+ a, S) z( V# J& ]: b- d7 `
        {
) r. G$ X7 w6 o6 J  @3 q% e* A' c" O: ]* |" ]7 ?+ p$ o7 l9 ?1 p! O% T
                .active_low = 0,* `; X2 E* ]) C0 J# L
1 H$ L+ x! Y9 i; x7 d
                .gpio = DA850_USER_LED3,
* ?+ o! J, N  J; u
" \+ T$ c0 O& b                .name = "user_led3",
  E* c8 l; W0 K. c3 a: ^" Z/ x/ J
                .default_trigger = "default-on",
( Q/ x  P& r" A( ?+ K
3 {7 e/ w  s' `5 e        },
5 a# c1 n) f3 g) @* N# _! Z/ u$ ?0 Z# v$ A
        {1 B3 _% I) ~" m$ z! @: ~  r( {
4 e" J1 j9 Y: D0 N
                .active_low = 0,$ u/ V% f' x& \1 J# t: z- }3 |5 K
7 h5 T- B0 v4 G' _6 O$ W
                .gpio = DA850_USER_LED4,' M2 g3 j2 z0 i$ Q

  {- F0 H# q6 {8 e( O                .name = "user_led4",
( y/ M, H- ]* A5 G  N& |9 @" [7 n! b; Q9 W& S& Z3 O4 ?
                .default_trigger = "default-on"," ]. Z. Q1 L; n! q! ^6 R; [6 z% e

- c5 {* C4 r( ?  ?' A1 |2 L9 h        },1 S/ \/ W* a4 T. q
" x4 G0 E$ @4 S8 |0 b3 b- H0 r+ {
        {
* Y" X2 h2 v% m3 ]: f! F1 G; s0 w) ?4 P  z: e0 ]$ [+ m
                .active_low = 0,% ?. T9 l. O. k' Q
; W+ T2 d+ P% L) M. D
                .gpio = DA850_USER_LED5,+ @" D; f1 Z& k! z

2 m" D! D) q. T# u* k# p                .name = "user_led5",
( E- R6 ~7 o! H( R1 Q+ o0 g( G/ O- D0 Y8 @1 T
                .default_trigger = "default-on",
% e9 _  N7 z2 T) l# q; x
+ s5 x$ X; d5 p9 U. l  O        },
/ b1 N% q# F& Z! {5 m, S$ K# j/ w
};7 h5 O! m' E6 }9 \. k+ z, [2 y0 D
3 X' j* B+ g  q# I. t1 j( r
; k2 [9 A  e: O0 N$ Z: I

+ E1 x  Z! p4 g1 R% ^static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 i7 Q: r# H! S; y  t2 |

  a3 y) Q& d0 u6 U# [        .leds = da850_evm_tl_leds,
/ V- }" W( ]! J% q% C& N. H! E' ?. `9 b8 o; @2 c& P6 h
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ T# O: a1 m* F- v) `/ _- l

$ y9 O5 w# d+ j! Y$ \. i};
' R4 R3 w* T5 s4 q/ H
' J! g  [# r& o; @8 d0 ?& H# X
. {4 }' V: X# z# d* a
$ c0 S# q, x' f$ tstatic void led_dev_release(struct device *dev)) F0 L% k8 f# F# I8 [

; W: b1 D) h% G' M7 i% E{* m. g% G9 a4 _$ x, f$ E, M
2 b& j/ g/ T! V' S+ x" c1 S! U
};4 F' h) P- O8 K9 \

! k9 Y: L9 ~8 e
- ?$ ^; X# ~( R& g. T
; j# h, T! R% Gstatic struct platform_device da850_evm_tl_leds_device = {- k+ f8 l7 I& s3 [0 I% B
1 k" ~# A! s% `* ?+ }3 u9 T
        .name                = "leds-gpio",
; T2 }' S" X  F- m- y/ I0 S1 E5 v. X( R
        .id                = 1,
) D2 p& |1 V: A" p
+ n# _( H: g. k        .dev = {  L1 w  _8 ]7 ~6 a. D
# i& i$ a0 y( u+ e
                .platform_data = &da850_evm_tl_leds_pdata,; Y! n+ A6 H+ l# T" Q

6 i( N$ `: k! n+ ^( p* B- A3 A                .release = led_dev_release,, E+ u7 {' W4 o% c) I

# O+ x$ b6 b" @! z% r7 T$ m6 h        }
9 G1 `2 u$ z) F- W
/ m4 V- ^9 f% W/ W4 }* E) B' ?$ j/ m};
8 _. Y9 }4 m/ w0 s9 N& _& C
. M( j8 z3 `3 N) Y# ^- C
  O8 ]3 ~! P6 R9 F# O, Y7 e! S$ C  O# ?9 P
static int __init led_platform_init(void)
; M. ~$ ^* k/ ^% ~  e  ?$ w9 M
( s# ^2 x2 t3 t' S# ~6 f; b{; j; O7 \. L: s$ I

) @* B+ m+ F2 k& u        int ret;
( v" w  _. _, b8 P/ C* A: b
' p+ o6 ~& n' X, y* L#if 0
, a6 X' H3 N1 o5 t6 Z: l; u2 v
4 u; Y1 A; i8 U+ n        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 _$ n4 P. R' C$ g: T9 W8 w, }; q% i) ]1 g# X, R
        if (ret)+ ]5 [: m0 O  h) x
% l$ X3 K! v& B% M- k9 U3 `
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": y. r2 V. q4 P0 N8 N9 {  l/ C

; }3 l0 l  D! V7 s* m  [9 @+ z( m7 t  l                                "%d\n", ret);
% _- i6 v- Z. P, z) f4 T
: y- Z0 A7 u$ A* o3 T* p#endif
( o' \: D4 k9 A1 b* h5 K9 E( x4 \- E8 x: k3 B5 O
        ret = platform_device_register(&da850_evm_tl_leds_device);: U" C5 v6 S/ c2 [" P
4 v8 b; N# P' O
        if (ret)
0 U% q4 V! N6 c" S6 @$ v9 j# H% L2 j2 a7 f2 V; t; s! _
                pr_warning("Could not register som GPIO expander LEDS");
' c+ ^; v/ B9 f" k# w2 f9 L/ ~* X' E* Y' l6 U
        else
: ^4 L7 N- z# _1 D& A  G' K; H# @" L% N
                printk(KERN_INFO "LED register sucessful!\n");$ e  z( }, S; T0 c

. g, {% ^+ g5 ^( W# p4 K0 z# O0 U( I  M" _

2 z1 h: G# p/ F) f( U' Z$ z        return ret;( U9 T, o) q& m% H' K( }. j

' S% r. f# O0 T/ \}
1 B7 e2 {8 u. D% R. r: \" p8 \8 H
" o7 w- \, g; b* Z2 L) d' ]! w. a2 ^. h) p% ~5 ]1 B

- j3 A, e- e  @static void __exit led_platform_exit(void)  E* N3 s! }* ~3 L0 \. q
3 X$ w, \9 x) s7 A! f2 ~
{
1 {  N( U- U$ D7 o& x+ N9 b3 F* S4 ~) k5 N: c4 U1 E+ [6 A1 K$ C, |! R
        platform_device_unregister(&da850_evm_tl_leds_device);: k3 Z5 \4 w: R6 L5 o

+ U, {; {# b! g) d0 v1 p
7 ]+ W4 \# ^) ~: M% {
" x, T( [5 ]% K; J4 _- s        printk(KERN_INFO "LED unregister!\n");  ^" w. B* t" p; H1 x4 U) L- w% O

6 }7 ~) b* z4 m8 ?. l. t}
  N$ \( F4 u  F% g$ B# |0 D
( Y0 ^, \: ?/ [- w! m! ?2 B2 q
: R- D0 m. G0 k; a1 Y' a" ~, q$ F$ g9 c, y3 `3 Z
module_init(led_platform_init);; s5 ~% X" J% Q; t; _% H
' o5 w8 u/ Z! c: C! r9 R# e
module_exit(led_platform_exit);
1 T+ [7 a- B4 O# @) f, s8 I9 M: {  R
) r0 P% H6 V! j/ |' T5 n: Q

' j4 N/ L' a. c" W6 D" T) P. l% BMODULE_DESCRIPTION("Led platform driver");) O; F: l# T( G
$ B* f% q1 Z2 }
MODULE_AUTHOR("Tronlong");
! ?1 ]& C( K+ G  O5 f$ M
3 F4 c* q# |! T  M1 v7 MMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。: o3 N) D# t7 r( d' X3 _, p% z

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
! z, p7 Q' u9 T3 ^3 H0 M1 V) M您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。7 S. w9 k6 i/ f5 u" n3 ~
...
" F  C; F8 h% Q& Q/ R5 ]- g
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
" S4 y/ p7 D  m$ h4 t6 [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-7-7 07:41 , Processed in 0.042043 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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