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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
1 z' \. T* I, v0 x
- W6 _3 r) G. ]3 p/ K请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的5 i3 x) [; X1 A
$ T& o! ~0 h+ T1 B
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
: ~$ B! I# D' r7 v9 s' M/ P: K4 g; q! 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! q5 Z1 S+ O' e1 L7 {, }: G
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
" D) |! ]; c7 O+ j
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
! r. R. P3 H* @4 Q9 v( a#include <linux/module.h>
+ d, f% C1 j1 S5 ^, A9 B  Y9 S3 F1 @  i! }; ~+ h+ j1 q  W  ~
#include <linux/kernel.h>- U' j" A% |6 l( T* Q

; l% y+ V9 B; @2 i#include <linux/types.h>" |7 F( W* N: f) H! B

1 u( D4 a- [* }; f4 }' i#include <linux/gpio.h>0 c# ]0 S( d( h0 ^

, j! v- V, {' ^1 R3 d% n6 O#include <linux/leds.h>
: F/ `$ _1 B4 q# `/ T( F; W4 v: h# E% P' p1 V* c0 R
#include <linux/platform_device.h>. n/ P5 x$ r$ g9 |# j) W  ?

3 E- ?9 ~: _1 N9 g2 @- W( s
8 r" h- m3 P: b% ]1 T
+ ~  @: S# {0 p. c' b5 C#include <asm/mach-types.h>! t$ ?. ~) O$ c5 [; ^0 m; F3 T

4 o& o; @: _; p5 q% P0 f) B, |! n#include <asm/mach/arch.h>$ ]+ x  {+ _( Z0 o0 i

; r( [- p: m0 p/ c$ e6 V' [4 T#include <mach/da8xx.h>
+ I3 w4 @9 C& E- A, q+ B9 u- |8 e+ `, |7 \
#include <mach/mux.h># I4 J- M5 I( p" m! |
5 p; a4 ]( ~3 C9 a/ R8 ]
3 F, Y" Q7 H- W0 N* u' D

) `3 Z# d9 p& ]+ n1 b1 E#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- i# d% ~8 Q' V- A7 j( }% p2 c1 H0 z2 m3 J/ n
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 x2 G) n- E+ o- W+ a& P
% y: r4 J, G9 }# f8 O/ ^2 C* b' d
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ V( R% G- G5 q( Y! f# R4 x3 s' Q! K& f- b: N* z7 o6 s" R
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): c3 b8 u+ R) M0 N2 D  A
6 W& c: K7 {; \5 Q. j
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)& H3 r  j; K! e% X6 H, Y; ^

+ H/ A/ @  ^" z5 T#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
5 B7 O0 T( P# }6 w0 U4 b
* x. G) L$ W$ m4 S$ L4 l( t6 T
* [2 @8 h7 R, K  l3 y& d7 w! x4 @- x3 M* f2 e
/* assign the tl som board LED-GPIOs*/
, y1 Y6 p" s# C( O% B% [  s
" F' B& E0 I8 y/ R/ }2 H* estatic const short da850_evm_tl_user_led_pins[] = {
, Q' Q! j  F# ]+ ]2 ]0 n; f) C4 x" y+ n$ t
        /* These pins are definition at <mach/mux.h> file */
( h' ^7 b4 [( r& E; O6 O1 p! T% U  _; Q4 Y3 G- a: p' y8 y, e8 e
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,# K, I  t( I) W+ R9 A

( A; s3 s. j( Z6 t6 B        -1
7 p& {9 m6 X, {( @  _! o7 i5 _4 L7 H
};1 x6 l2 q8 _# o/ E
, }) Q7 \! k4 q8 I1 s' R
: E; Q( I5 U' t% p( w% L" e+ H

  F! X9 p! {- `5 ?% tstatic struct gpio_led da850_evm_tl_leds[] = {6 M7 V2 \! Z! g0 m/ N

* L0 y" `  ]! r; `* A7 t* w. A        {, H0 w8 _' U7 A; x6 P3 m
5 t" P  a- }$ b
                .active_low = 0,
6 L+ s( ~" M: |8 v+ [
5 ?; o6 _: ?5 i7 k9 W5 _- R$ k                .gpio = DA850_USER_LED0,* {% G2 V7 ]: ^9 `4 V0 |
; G7 `1 p1 t2 E* R+ A1 u. R* b. [7 `
                .name = "user_led0",
! ~( }$ v! e  ?9 W( ^0 b' I6 g9 ]' \* l3 N, ~
                .default_trigger = "default-on",3 B; a6 Q- g9 t: F. \
: T5 R9 F; w! X" g1 C
        },
- `6 ]: V. X' F% ?- j- M% F$ R- w, w1 ?* K& k# }
        {' `$ Z' W9 v( j
  l. A% [0 k3 u+ k2 y" A
                .active_low = 0,. ~8 `; ?4 q0 W( h+ o

: I, W4 M2 t; j/ K/ d& H8 E% q                .gpio = DA850_USER_LED1,
$ r3 K. ?' T* I8 A+ t! e0 G7 h# V5 b4 S9 ^9 x$ {) V7 I- y+ x
                .name = "user_led1",
) M9 `3 y2 k. f: j2 f
' ^7 u8 _3 y. j. C+ K* y                .default_trigger = "default-on",
) u2 K" c  k' [5 w1 I; s4 _3 Y/ X- c3 J6 a
        },6 O$ E5 b1 `& x# T& h

! ?6 z! b" I7 D        {- f- X9 u( @$ t& ]& I
; O% E, }* O1 ~, a& b
                .active_low = 0,
( |6 P1 J  r  P9 j% g/ P/ P3 Q
! _5 X+ \* B6 M* W                .gpio = DA850_USER_LED2,; t# f9 ^& H2 ~# ^, \
0 a/ ?! i$ d( ^8 r: n; {
                .name = "user_led2",
  H& j# `6 `0 L5 T8 y3 H8 U7 ?& @9 e# r7 E; J* X) o1 l6 {& I+ [6 o
                .default_trigger = "default-on",# i! q7 l9 B* L/ q1 K

9 F5 ]0 }3 U( ]. G; X. \        },2 p7 o* y- g8 g  f

, q& d3 X6 }6 W        {
! i* D4 k/ v7 |3 u8 W" w" n  G7 ?; ~9 H' ?& w
                .active_low = 0,
$ Z; z0 O1 \- w5 V* P
# `( a- Z, z$ s% m7 I- W                .gpio = DA850_USER_LED3,
% p9 r+ _! j& q& q1 v  q, y
) v# i6 ^* Q3 `) c5 j+ I: q                .name = "user_led3",6 E3 ]: s  A! b/ s

! Q% u, B5 d1 B) `" R                .default_trigger = "default-on",/ V' r% p% h0 [. R' Q

7 k8 ^# D$ V1 k1 J        },6 m- A" c2 g9 J5 i

5 {3 T1 B+ P9 Z4 f, p4 Y, n        {/ [5 p2 ?2 v2 p8 ~2 P" Z. C
6 `4 u; c" `: M
                .active_low = 0,# z  L1 T6 Y" B0 I  S

' x0 u4 j7 [/ G( J9 s0 i                .gpio = DA850_USER_LED4,* z; g7 }' C( L, y' O/ B; l
2 {9 B6 ^. C2 T- k4 W& l
                .name = "user_led4",
" O+ I5 W1 j0 O+ S$ Q' \% J3 X4 z8 o; Q) T9 N  L
                .default_trigger = "default-on",
5 O% H! `; x* R
0 n7 g  R" A$ O1 y0 W        },: c8 ]" E- \# X  l
& L" E- x$ i5 T
        {
' N9 X: e& i5 N  @0 {- A
/ P; ^: K2 l' V( b3 u                .active_low = 0,
" x/ k% r. [/ p' `% J9 L
6 s8 I% D  I/ C6 W4 ]! ^                .gpio = DA850_USER_LED5,
' o, _3 t+ y: q! Z/ V; C6 e5 K! U9 B: m( f/ _# ~; a
                .name = "user_led5",
7 l8 u5 d/ Y+ n& I! P/ c6 k
# k; R4 Z" N0 L4 n+ \; `/ D                .default_trigger = "default-on",
$ ?7 j5 Q' n# Q' K& S% j
" G+ m; M' [3 t2 w. m        },7 O! D# ^8 c5 U6 h- B2 p7 R
6 Q6 P7 u8 C! C2 G9 d* Q
};
: a4 F9 V+ k  p  N3 [( q9 ^2 E7 V4 y+ T+ l6 m

4 A! x$ P% l* e: p; ^' X
  ~3 E" c4 L" h4 ?3 P# i& Kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 e  p- J* s5 p, R& y/ v' |- |
0 A$ S7 O5 k% Y        .leds = da850_evm_tl_leds,
# a4 ?. y5 x+ l6 o; R; H5 b. {$ N- }8 K! a/ F7 A" H( q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
+ J1 L& R5 O3 D+ I
: \( \3 u/ S7 X+ x( ?1 p2 i8 p9 `6 x};0 V" r, N" R' Z0 q, M- v
# |- t* ]3 k8 B" `1 r

; d  @% ~# ~' L: J# y3 B
/ u; P; ~* Q. e# e1 }$ jstatic void led_dev_release(struct device *dev)3 N9 }  {4 `* l% _/ q( ^

$ `; y9 m3 u# q3 i1 ~{7 f$ |9 [" }6 O" c) ~1 A

: U! [# M- A3 }};
5 u+ }' a8 \+ M# x! X% p, T. l/ g" s' h$ k. @9 H
# l! V' V& {: I: u
1 u* J4 a7 r8 b0 x
static struct platform_device da850_evm_tl_leds_device = {. G' ~% |. e5 W  N3 @; x; P: M
4 Z7 n9 S, I* l: U/ k
        .name                = "leds-gpio",
6 `1 v* t0 W9 f4 y. p# D
/ o+ z7 m4 J1 S' V        .id                = 1,. M- W$ z( c0 N: t; N* W# I8 s, I) A
. h6 k: l0 `$ s: @" }8 ~! H8 j
        .dev = {
8 \  |4 k5 c' P" }% p5 _& g6 P  ]& @% h4 r3 S
                .platform_data = &da850_evm_tl_leds_pdata,
: P7 T/ v% |( b' P; U5 X' P4 C1 X, W2 ]3 |' k0 K# |6 q
                .release = led_dev_release,+ @4 ~2 t/ s7 L4 h

5 P# E: P2 z4 W/ V        }- J% G8 A. y' U6 H* h

+ y6 {. ?2 I8 D5 f$ b};$ s: Z" e/ z5 g; O0 i+ ?- T
4 Q7 _" r% @0 e
* H" d* W1 P. f  C  j6 ]6 U) l) o4 A

$ g) M8 U- k3 E. i/ ystatic int __init led_platform_init(void)1 a, m# a& D/ v9 p$ T
; u; m3 q% |2 e5 {8 e; D' {
{; ^6 p5 K, r7 |1 k+ T' G
. a5 L. s+ t4 k2 t+ E$ |& }2 p
        int ret;
) E8 T. |+ r" v7 I2 Q3 x5 F4 P: f. I0 N2 b* t: n3 b. M' u
#if 0
8 o% M/ P, i9 i  Y& l$ ~" p1 m. q3 ^% S* a$ @* M) D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  w0 V6 l9 z! z+ v0 C

0 k9 r! i3 e; N6 G& K        if (ret)+ l% _+ q, F. J: H8 X

3 B* e" t" v0 G+ n4 L7 ^% ~' s                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( `7 U2 l5 I0 K+ u: r5 n" k0 }
' F8 W" d& R8 v/ l$ \                                "%d\n", ret);+ N1 y; n" I" s" x

+ Q. f' Y3 V: k' d& _' \#endif
; ?+ B' I. X( R' j! ~' T" u) M! {7 I' }# V6 G
        ret = platform_device_register(&da850_evm_tl_leds_device);
8 y- q5 n) k3 _% g5 m& a- k) s. y% z6 F7 b
        if (ret)9 W/ \- L/ C2 B, l7 l8 E

# }/ w! X! r4 {                pr_warning("Could not register som GPIO expander LEDS");
- i- f& g6 n- m* c' i7 @) b3 ?+ M% Q9 d+ y1 r# _
        else( A6 @$ V- [0 {% g3 |
! V. s4 L. z! \+ H" }
                printk(KERN_INFO "LED register sucessful!\n");0 i- o2 r2 Y2 K0 C
; P& E, w: k6 L1 X0 q/ X) q! z
" ~) R: U+ D; _3 z

. l) M+ }* z3 l4 W$ W( w        return ret;. w5 O. L* ^& E! R4 {) l4 b4 a

$ Q& v* \# {" a5 d- G7 ?}9 l0 P1 L& }+ X5 ~0 C7 R+ B: v
. e. @' i! B5 B; @

8 z& j7 h0 X4 {# m! i# N9 |) T
/ s. F6 C  k* A% H& {' A) W/ Xstatic void __exit led_platform_exit(void)# r" e) I2 @& m0 y

  ]2 R3 q+ R* L{
* S0 n: z; P3 \0 @4 J8 A) Q, Z2 `) `  I  W' E; u
        platform_device_unregister(&da850_evm_tl_leds_device);/ L2 o1 P4 M( T
& i0 p5 z" o$ C- j) F

! z* q) {, y% T: g8 S( `4 B$ |5 V. R, G: F7 [' J# `
        printk(KERN_INFO "LED unregister!\n");
) t9 l9 L9 ]8 s, S) P+ m1 I( ?& I; ^# j# W* I9 g/ G
}: n) v. B$ c9 F8 ?' d" H) n

3 {* }3 u4 \5 }; l- \. m: T4 ], x6 ?2 X

" d* [2 o: o; N$ Amodule_init(led_platform_init);( ]& A1 H+ z9 l

: V. ^5 D# b# B- R) ~2 K" Qmodule_exit(led_platform_exit);% O8 ?1 x3 i8 J( O; e5 y  k; e  b

7 m7 x6 U" h# D
8 v  P, Z* ^, b( k  a0 x
. H. z* a2 l( dMODULE_DESCRIPTION("Led platform driver");
. u! I$ k! z2 c$ a2 V3 h# T# F* a( _6 b" [+ M* Z9 [6 U4 u  q2 M2 a* Q
MODULE_AUTHOR("Tronlong");$ b3 s2 p5 g- A' F: O
; i* {2 }+ B. E; U- F
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。* r3 P. M* m4 f) I8 O

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
$ P: O2 R: X; J% |您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。5 C& \1 y" R! ?; m9 L, _6 k7 H( Y  |
...
2 H' G* P2 ^6 W$ i+ P  t) q" e6 B
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。9 k1 N' T2 @6 j4 _% l6 o
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 20:26 , Processed in 0.046698 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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