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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
3 ]4 U# a  W% W+ L
* {5 s! {$ H% `1 H  {' [; h1 ^请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的8 Q' x* B8 z' ]- J

$ Z" W& ?# @4 t之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
4 Q' `7 d$ p4 B. ~; K; G+ |) U3 h, d

本帖子中包含更多资源

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

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
, }& j* u  X% _2 G) Ilinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

. ~- v& v. m6 _$ `9 G3 A我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:$ i* [" w! z5 [  B( y3 E
#include <linux/module.h>8 e, ~8 Q- J& F% w
& k5 Z+ d) M- A
#include <linux/kernel.h>8 J' X, ~+ W* M# ?- l

. v5 |* e+ F+ ]( y: Z#include <linux/types.h>, I# s0 o. |" O/ |' ?

0 m+ G, i9 P, U#include <linux/gpio.h>
/ y. k; a" f6 Z; D
: c' m- G: N/ d9 y  t% w, b#include <linux/leds.h># X' x5 D* R5 w% d9 m5 ^/ i1 ~

2 Z" }$ l1 t/ i#include <linux/platform_device.h># C3 O# h- C+ p% S

# y& E2 [& ~% {8 r# K: Y
- W, D. ~8 Z0 ^% v  O- f' z- h0 w4 {; o" x
#include <asm/mach-types.h>
+ _' {9 Y2 w3 h$ J. C7 ~+ E1 o7 m: ]# f+ J: h0 Z. i5 l
#include <asm/mach/arch.h>
" G. h1 i( M9 Z3 ]$ I# Z
+ x* E# A/ A% m9 t  F* `; G( u#include <mach/da8xx.h>
& X' G% o' V% E+ n  j' R- T2 R4 F, C
#include <mach/mux.h>
/ o8 `; g- _; b: Y8 A( v( j6 S+ O& m. `  n

. p$ T0 Z1 V# I% ?
5 |: z* G0 j0 b3 @- o9 `( V. n#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* b7 B! x+ s7 C. g

  R* ~! w+ C6 }9 ^  d#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 A' b) h8 T+ u6 G; \, \
. \; y7 |% G$ P- U4 o' D- R  C
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# A0 h( o3 o% y% P2 |) e3 q2 e$ G8 m* N) b
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 z! y" {3 q$ N& Q

* X2 A2 b4 o/ A6 ^8 K, \+ m#define DA850_USER_LED4 GPIO_TO_PIN(6,12); Z8 ~3 O/ D, `& ~& h) V
% q* x' m  p4 B  U; M3 F8 ]+ ^
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)# `0 u" _7 R# B7 |

( T: M( Q/ f. c% t3 i
5 G! ~: P, E. _4 ~  Y0 \/ g3 P! ?% ^% t$ B" K+ T
/* assign the tl som board LED-GPIOs*/! S$ B. g, u2 E$ v5 @+ [: k

" ]# |5 H: ~- Z  U  r# W- bstatic const short da850_evm_tl_user_led_pins[] = {( X. T% B- g1 r

% |: q% F4 I) y( p! Z        /* These pins are definition at <mach/mux.h> file */
- A' ^% M; D! O* L4 |. `+ h2 A/ S: B, q& K+ o
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,  q) v8 b* {& O; q$ v
- O: b* g' A/ D- D* k! ^
        -1* a! C4 M! x  O( x8 c* k

" v) A: k2 T4 I4 x- p+ o};# S% v1 r' `8 w9 S- I( u0 ~
2 W% L+ e  S. ^: X& z4 d, v
0 ]4 r1 d& s+ o

/ ^1 U# z7 j- Dstatic struct gpio_led da850_evm_tl_leds[] = {
) f; O" X2 [- _6 u: q
% p. s% F. j% G, K) L% C* r        {
+ _# Y; m, `  T# J2 s/ Z* y# f4 C1 X1 \" j5 t* Z
                .active_low = 0,3 Q: E6 z; f0 G/ i& X+ D* R
. K+ i8 Z) c% ~  X$ i
                .gpio = DA850_USER_LED0,& s1 Q* F* R" k6 v# w& g" P, G
- Y( G8 U3 t2 _+ y. ^* Q
                .name = "user_led0",3 ~. r' j0 m) W( @, c7 G, ~. G
. O  |7 E$ x) K, @
                .default_trigger = "default-on",% Q: s2 `2 }& R9 Y: X: g
: [; R4 r) X2 m" X3 b
        },# p0 p7 k3 J4 Q3 C

" q" Q& |* V: v: B        {
1 y, I- F: Z7 d& F3 K  w0 H5 c1 }6 C6 R8 a, F* F: Y6 g* @* D
                .active_low = 0,: w/ k$ N: Q5 F

. O; K, r, ?' K2 d8 A6 H* P8 L                .gpio = DA850_USER_LED1,
1 v: k9 L# \& E. n, o& N, ?! F' V. H0 b1 p! R3 `1 A
                .name = "user_led1",
1 P1 k! {+ v' w/ `$ a) I0 M6 d5 {9 d4 L" s- A- k
                .default_trigger = "default-on",
4 Y3 D2 ?6 f7 F: s- t! o# }3 n2 H: t# P) s! `$ z$ Q
        },3 P& q; S# S4 P6 u  _+ ?& q2 g

2 p+ r$ p* y* I' D! \: D0 h        {, R1 M8 E1 u( T: J5 Z: y
  k5 d5 V. r  x0 k
                .active_low = 0,) q, h6 Y3 }8 y7 x# l% s1 z0 J
6 P2 i2 `9 e5 A; ^4 g
                .gpio = DA850_USER_LED2,
4 k4 N0 Z9 O+ g/ V2 A! U: l5 A6 X- I
                .name = "user_led2",+ \# U1 o7 N$ X

- o( a/ X1 E, f/ K5 `$ A; _6 M                .default_trigger = "default-on",
/ S5 l7 p  V/ @; b0 x- s
) D( A! p% T2 C0 t        },
: ]; N7 i3 C8 L. j1 L* k& T3 P9 b# o: v. k
        {
- }: y  D7 U1 o4 M& t: L' x; B& y0 w5 ]+ k+ K0 n/ e* u- `8 q
                .active_low = 0,
& x2 ~2 F& W$ w& b6 v) r! l6 I2 F/ \5 B  h* j" W
                .gpio = DA850_USER_LED3,7 k2 a& l. }  T2 v' m2 k! M

* i5 E9 ?% H- p  n! W$ e" ?7 y                .name = "user_led3",: M! A6 Z# r; u1 u! g3 k1 g

4 q- p; m# p. D5 P0 b2 N                .default_trigger = "default-on",/ ]$ l5 \# Y5 B' T

! Z; @! u+ e: h8 z% X' o! N        },
6 {) Z3 I3 Y' V& |! z: R- l8 w3 E! t! R. o0 T( c
        {
0 h0 {- Y- @: [4 K
& ]! B9 C' @5 u                .active_low = 0,
/ V& R( y0 [  v; @( L0 @! D
  K7 ~* h, d0 R  r/ o. ^$ m! `                .gpio = DA850_USER_LED4,8 x! F2 m' A; I5 |0 ^; q: M
& s4 X9 _5 e% B+ Z1 H2 }% g
                .name = "user_led4",2 Y( U$ d1 ?+ c! m$ i" j2 ~

- a, m7 h% ~+ O; M. x                .default_trigger = "default-on",
+ m5 z. G+ o  u2 Z: z: Z* o0 U3 [( e. r+ Z8 T7 H' T7 U  `
        },
/ b: t. p. w; Z5 f: S+ G* A' L$ H; {  f- [6 U2 Q) w+ j  Z
        {
( {( L; J. \7 E6 B" O& b) ?! Q0 w2 U% ]# W* |- Z
                .active_low = 0,
) M6 x# o# ?" C; Y# ?4 S7 D. ^6 c: Y
                .gpio = DA850_USER_LED5,
+ h+ b6 [: E6 D8 q; p4 Y5 A4 V8 o" i9 v5 |9 v& k  \4 o
                .name = "user_led5",. \+ l4 o: n- N. [: _7 v& g/ Q
+ `3 S5 D# R( _+ C7 {: [
                .default_trigger = "default-on",) E! p/ e7 Z3 x- r% @/ _

8 {5 D2 [6 `' I1 [( T& Q; t        },
( p$ \7 R( z" ~, ^. W$ T6 b9 ?! `/ K3 B% D( @3 q* c0 x
};
9 d3 i6 `' l' t
/ \+ B* j+ p0 B1 M" _: V1 w6 ^& ?
; ]% V2 l6 U$ x, W, q/ q+ ^7 \, b! V  |' h% f
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' N. b$ p2 T9 C7 @8 _# W
) O0 w" T7 N4 Y% [" M        .leds = da850_evm_tl_leds,' O, r# L8 w: G: U# u
& t0 k7 z+ X( I
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 E. m" `# T0 ]! D& P0 B

0 q& K3 \/ a* H7 b};
; }. q, p0 O/ U( t' C
* K9 h  H% z/ e9 a0 s# d1 B/ X
  m9 F9 ^4 o+ f5 A& F7 [8 b
2 X  u: G# \. [$ |! A! p3 R& x: R, Ostatic void led_dev_release(struct device *dev)& I$ ]5 N0 v  k) G/ M

0 e8 c) W8 a0 I8 v$ L2 V{
: Y( y9 Z2 u+ Y, K0 ?* o5 g8 J8 y' c! z
};9 ^+ F- o% s3 h2 D+ y3 W2 `

, z' O0 Q4 S% i: B8 M2 Q1 d' ~" w* i$ z1 m. D+ o% r7 x( c

8 c+ n( q8 F5 d, y) q& cstatic struct platform_device da850_evm_tl_leds_device = {, O3 a1 _( {2 y# [0 j

) o7 T& b! [  L* t1 u6 x        .name                = "leds-gpio",
4 c  a. V. a; E  I3 z& C  F$ ]
; M' t! k8 S- M. U5 w        .id                = 1,9 L$ w  l! Y9 I! j& x# {1 C8 V7 f

' B; }1 }) J/ s# `/ O3 R; J        .dev = {7 C! ^" K+ X( }( S
; n# L8 R0 u8 e
                .platform_data = &da850_evm_tl_leds_pdata," ?4 R! @1 Y" p# w

# Q6 ~" r4 O6 L# r3 t' t                .release = led_dev_release,& X9 l! ~: e& B$ k  f. w

' G" Y+ y5 @$ ~2 ^3 f: c# ?        }! P1 e8 g1 p$ |% T5 A: `2 H
9 S3 K3 F! J- C! E0 Z. J: u
};
0 O7 v( E! R: \: H  I  Z1 r3 H" Q% d6 u* ]0 p$ o

3 e  w2 \' V/ u) V
+ g3 n* l* W% ?/ W* Sstatic int __init led_platform_init(void)% d8 p8 j# I8 G9 h' l, h
% p1 R4 l+ K& W; e8 L7 L( p2 x
{/ Q; k  {- ~; {

5 P+ {7 S. }% D1 |& h* s        int ret;
2 T6 Z6 D4 Q; y  s* z% U
8 J& ]2 e. [3 j7 h) @3 r) j: z; F#if 0
  e; K, V4 b, D7 A: K4 x! [+ _7 v4 P2 [
/ G9 a8 S& A& z* _  F0 J' ]& g        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% L/ A+ _9 i$ q8 `& t0 F" F$ c
3 E5 ^0 ]4 Y% v        if (ret)+ ~, b5 g2 P: k
5 ]) S  e; u5 \9 u7 Z* q: ^
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; h8 O9 H' L1 F) K$ P2 Y
4 D9 N; n$ \7 \( F8 ^9 f                                "%d\n", ret);: k! }. t- D" y! a
. ^3 I! l3 ^4 g) j. G- W. r3 N
#endif
7 @) f* h0 a2 a$ w9 N# {2 r! V  C, X6 g: L! P, C8 r7 N
        ret = platform_device_register(&da850_evm_tl_leds_device);$ F! m+ u' ?! m& t

) O) e4 h+ n- Q# [        if (ret): |; Q2 U7 K0 }7 E4 L- F- N3 q& v; i9 A
, G2 L. f4 p' Z0 o1 o
                pr_warning("Could not register som GPIO expander LEDS");0 U' d: Q# b; {
! D6 B5 B% e# ~6 p0 m
        else
8 G, W  t  n8 i. Z; A  {+ O1 _6 {$ S  O' q' H3 u
                printk(KERN_INFO "LED register sucessful!\n");- `8 B0 F5 Z, I8 |
# a0 X8 x$ r/ N6 C- y
5 ]' X4 u3 c1 y9 E5 m( f; n
" `1 M; r+ X$ K/ @4 K
        return ret;8 ]- `, |1 l' s) L; T6 c, I

8 v) S1 z  X2 F  g, h}
6 ]8 z: N- v; c) l4 r* A# L+ G$ f: X: N  Z# C
+ N. ]+ }! B* d$ n: |

6 X8 G* _8 Y1 I9 i) P& fstatic void __exit led_platform_exit(void)  f( }: u- f  ^" i2 u. F

7 \8 w$ J* Y+ g8 O; I0 K{9 s7 u# W/ P  S# l. q: ~) S  ?% @

: \' O) l1 v+ K6 @/ w        platform_device_unregister(&da850_evm_tl_leds_device);
2 [2 V" c* \1 H5 n' ^6 g: k4 [  W
  p( |4 k" m6 v( a- W. X2 T8 w; X9 ?- Y; n
( l6 R7 S% t7 ~1 z" [; e7 s
        printk(KERN_INFO "LED unregister!\n");
% p& M) t. Q6 Q# c- B# @8 t  p, v: Y1 Z* m8 j; ]0 ~! I. i
}
5 p- C: h& [/ F$ ?5 D# v& Z* r
2 |# F$ {. K" Z- u# d
9 q4 [) g) k( g3 h  |1 S2 v0 J2 ~+ J2 S6 n0 T
module_init(led_platform_init);" M  j; u, N5 C! }7 H
- O5 E. p5 Q' n9 O/ Q2 j( B+ C
module_exit(led_platform_exit);7 n; s8 b9 {+ b) c$ y0 j
0 \+ K0 K* j" z2 |% B; k2 n

8 v6 U5 D0 N3 J4 U
( B( s1 u( o! e, y9 ?" vMODULE_DESCRIPTION("Led platform driver");# C. w4 @$ g' |3 [9 W5 `
5 L. r( d- f" G
MODULE_AUTHOR("Tronlong");$ W) }9 e9 I9 q
% X: [2 m& c" e  u, V  M
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
4 [0 F$ r( s7 `; U  _" ~

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
& r* O& d" ~5 F; d1 ^您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
$ p* Q$ k) |" e9 d1 B6 a6 Q ...

) H1 h$ w/ Z+ o好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
& ^$ L) u0 q, khttp://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-10-17 20:41 , Processed in 0.047532 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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