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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 2 E) [! m4 p) {! `  Q

, Y$ U! N8 F& D" t) O/ R请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的) \1 N0 `/ B: _7 s: @. z
  p- \7 ?& m0 N9 v* @& H
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
- ^2 D( @: e* i6 k% T# l& i- V; t3 e2 x$ M

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
沙发
发表于 2018-12-14 17:14:42 | 只看该作者
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱动,通过应用程序访问驱动去控制硬件设备。
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
板凳
 楼主| 发表于 2018-12-14 17:29:27 | 只看该作者
广州创龙莫工 发表于 2018-12-14 17:14
2 G; I+ L0 S' q6 D, jlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
& A9 ]/ [- t1 F  p! T+ v- k3 k
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
3 e! U9 B& A5 P' _& F0 z#include <linux/module.h>
& }. I) K( b; I  e
5 k8 d8 v) N- y0 H. f4 v#include <linux/kernel.h>; S# B; n( E" X1 K( i
, {; L6 C# M; S/ `
#include <linux/types.h>
% W+ I( p8 E. o6 C! [. c% b3 m5 F8 J1 T' t
#include <linux/gpio.h>. J5 W! I* a, `, |
  \0 r$ D2 J6 [" w% x
#include <linux/leds.h>; p. E& w7 i6 M4 E2 ]
6 r1 H3 A# \6 V# l  \% L8 `$ j& D
#include <linux/platform_device.h>) [6 K" T( A, A- O
3 _; X  @$ [5 M
$ o; H: {0 K3 W8 F: ]9 f4 D) B; n6 ?
0 {1 r. F4 l2 U
#include <asm/mach-types.h>
$ W$ u7 z1 I& P
! M: q3 V. d! ?4 ?! d0 _#include <asm/mach/arch.h>/ c2 ^" C0 t( ?; {( D' S

6 ~/ D  _: E' t- F( Y#include <mach/da8xx.h>
& L( t. p" E  b4 x. b. r
9 O! c' `* t9 r* f1 @& Q( r, k$ V#include <mach/mux.h>
& H8 r1 u1 X0 k. @9 x1 N% I% m' E! M

6 D0 k& T% K# M) N1 Q9 B+ n0 \+ O7 M  P  F: K6 h5 A6 w$ @" G- g+ n8 k
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ _! t- @4 \+ j+ j8 K7 J8 D$ w* z$ H' V& G9 n2 k6 `# c
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 P, W9 w: k9 L

1 R! l3 i- X% |& ]#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- y, _3 @* o0 ~7 ?1 H4 F* A6 g

2 p' |* W* |9 w2 {. d- q9 Q0 S1 t6 o& `#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 ^: n9 X: k5 S- m
' ~, z. f7 x+ S' E" D#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
3 _- y9 U* U- k& R" X/ x
. K" |8 l( Y% r/ L# h' u#define DA850_USER_LED5 GPIO_TO_PIN(6,13)1 J9 h; [3 X& A" O3 W

8 b. G. n9 ]6 w
6 m8 b: q& E; Q! Q8 ~  }8 s; ?* B0 m7 s8 `$ S/ n8 D6 _$ @1 l( z
/* assign the tl som board LED-GPIOs*/  o: v4 c- L2 f

; X" e" d( C$ W; Bstatic const short da850_evm_tl_user_led_pins[] = {- n6 X$ Q1 u* }) ^' w9 O
2 @* _- q8 B4 z# L$ i) Z
        /* These pins are definition at <mach/mux.h> file */
0 B/ r6 T- c7 R. ]5 i
$ u* a' r% B& N" q4 k7 x        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,1 u2 y: Z& ~+ A9 E8 `- Y. s, C& [

7 ~+ Q/ ~+ P8 [% _3 A+ X        -12 W) C; p, C* ^& a% ^
. M0 T/ y+ \6 P- _$ x9 }5 |
};1 J* o8 n7 c" a2 f0 c

8 ]7 F; X4 t$ T' [1 y3 X2 r
8 E* X- Z1 R- j* U  j( h# j8 N5 [! G- b6 @8 k
static struct gpio_led da850_evm_tl_leds[] = {
, j1 Q; K$ _* s1 C8 c; o! z1 C1 u5 N* d. i
        {
' d- `" L$ O" Q0 L' p
8 j+ e+ n1 Z4 C" y                .active_low = 0,
& `3 y2 Q$ R8 j4 B$ b' ^' v# C! ]5 x- L
                .gpio = DA850_USER_LED0,3 \3 {* P# }5 }
0 S+ r6 C* f' b$ \
                .name = "user_led0",8 E& A' Z9 Q# T( w4 z# f: x
0 J1 g& D7 x  q" z
                .default_trigger = "default-on",4 }% I+ C4 v" F! S; r1 |5 ]
2 W+ f* r! G, p0 P7 m1 H
        },' z- r; D" ?# `6 M! o
3 R( `6 |' y( G9 x7 |0 U
        {
* ]; ]4 e( R" Z6 m' A4 q/ t/ q1 [& _* T, |. V+ E$ g
                .active_low = 0,
; A) U! m+ W$ ], a/ J% s7 w" F6 x, S7 d# r' j. v
                .gpio = DA850_USER_LED1,7 x+ m* A; N$ f) o: J' W: K
# b3 }4 b+ w: P1 A9 C
                .name = "user_led1",3 G* a# y, k$ B$ e6 j8 L7 d% `5 k# a! c, ^

9 p/ L, D% Z! G; [: }* J                .default_trigger = "default-on",
" F$ P: x  _1 a" ]
8 m6 `% e7 i8 k( J+ q        },4 D0 a- S# c. S- u) X
* ?% X, `! g# c  w4 g8 Z! ]+ W
        {! A. V; L# g  C+ Z2 c

( [, o. w/ K1 z2 T                .active_low = 0,
" ?- m- R* l. ^& a3 x  f# g7 D9 q  f* Z
                .gpio = DA850_USER_LED2,
' r+ w4 D( F/ i  N+ P1 p, M9 O. X* T3 j0 q! ~; ?
                .name = "user_led2",, N7 u, o' Z) W+ A, n% v

0 [- {0 }6 ~2 E0 w; {5 k                .default_trigger = "default-on",- j% s1 E9 G0 r9 @! B! P7 l6 |

1 R$ U' @0 p, ]. b/ O8 ]2 i' L        },* l* {- b( U) ?, o0 m5 p
) k8 Q# ?9 V" }; p  ~& g6 O
        {
! ^- k( O9 p, p
$ f& N3 I3 O6 N                .active_low = 0,
- r2 T8 L+ U% H: a+ J/ d; x! z6 |5 z7 I: x8 U- T8 v
                .gpio = DA850_USER_LED3,
/ p( {5 J6 H9 v' I' D5 s3 `
$ U8 }# \; q+ x2 J) N# f, y                .name = "user_led3",7 o6 h' Y/ N$ F8 [* z& `( U

$ I5 t/ \( ^, @7 w4 ~5 V                .default_trigger = "default-on",$ [6 f; b+ e7 E. W4 v8 m; t
! V  C& Q' l( M0 R% }
        },
0 B6 v, P; n6 e$ S9 I* V! [$ z, j& ]6 R* m
        {; Y. R5 f/ l, J: P
5 x" M2 M% n9 t9 K4 o4 q
                .active_low = 0,5 c! z4 L$ B$ n, Z  D* u4 |

' G' C$ x( X0 H' q+ U9 |                .gpio = DA850_USER_LED4,
0 f9 v- w) G9 _: F8 y; P$ a1 `* S
" X; O4 n7 H1 `; G/ C# P                .name = "user_led4",4 h! o3 u( A- p4 e8 x
6 k) }; t1 y% p8 t% c- Y
                .default_trigger = "default-on",
  I/ L' y# G$ |; `3 {. f3 A$ w6 b, U: T* B% T* k
        },* k$ W- T8 b- l$ o: m
, ?! w0 i  ]2 c& T' t0 s
        {
% b+ E/ c* `4 U2 i" d
) n# E* o! E% p0 I$ S5 w: }9 k                .active_low = 0,$ E6 N* k2 Y  r; Y8 E
) D% G* o) v( n5 p3 d3 N
                .gpio = DA850_USER_LED5,
/ R: a! V% I: P% X3 W5 b. L( ^
! W0 Z3 S& i& p2 E2 P; n9 l                .name = "user_led5",( ], ~1 {) Q, w7 d- F
8 ^! i, m4 q3 k: J) `3 X
                .default_trigger = "default-on",# X! ~; Z' V/ o. _; h9 K1 E# D
+ S+ F( w' x: i: Z4 j( z' ^+ z8 ?
        },
& ^9 w9 y. M0 Y* I
2 Z8 k3 X# I- g( g};1 a% K, r! I+ n/ [" l

, Z$ [1 T9 ~2 e. q% j% m- K3 f0 {! X9 q, b! o' Y, r% A

# |. Q+ Y1 ]( F% V1 x; |static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 h# H- ~  ?3 a2 p( W) @
) y2 `& |9 l, E% m        .leds = da850_evm_tl_leds,9 H" a" X5 ~9 T# A7 ~

. }1 T" e) q! A# U8 I        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 k& T) n) H5 {0 S1 K
& M: ?1 J/ g7 B2 X$ L
};" ]' t2 S7 w  Q1 g) u4 {8 g
3 ?7 f% G1 k# `; K' G

6 T9 L- C( ]7 {# i2 z5 I
6 o. {9 P$ q5 F( Qstatic void led_dev_release(struct device *dev)5 h. T: V; A2 R! ~& G: G
  E! s2 y" h2 K  y3 X
{' q: M/ X' ~9 l& r, ?0 y
9 w) X3 Q3 x* W) N$ q( s1 Q2 M
};0 O% o. o* ~  [) W- O, B+ v

" B  f$ k$ I( |6 Z' I7 a( O- k5 b+ s( r) `& F1 h+ x9 v
8 e9 p( M1 @4 Q- P& U6 C
static struct platform_device da850_evm_tl_leds_device = {& @5 u) v, W/ J' w% q. u
5 H6 m1 {# p8 w/ N% `
        .name                = "leds-gpio",1 X5 q: h- O3 N6 E0 z6 \. w
9 E7 a. Q  C9 S0 o
        .id                = 1,
+ X4 [; ~. Q* D, I) ]& ?  g; `% N: k; h- P5 r+ F4 V: o
        .dev = {
( n, L* p: f' j4 S% @  u/ C
; E8 ~& S/ h( d# w2 N                .platform_data = &da850_evm_tl_leds_pdata,
  `4 J& ~7 [. F( l! h- @6 j0 C
$ c1 d; L" }7 S                .release = led_dev_release,, Q# r' Q" G$ b- Y" x9 r* G0 A

8 v9 Z6 q' y% a! `        }
1 J/ B! l5 @0 k" m4 S; R2 K4 H) N; n: ]- c
};5 X! p9 u# B( R( p
9 i3 t$ n6 \& q" x0 a9 ?! l
+ ~/ E8 t( `5 m* @* e9 c
& J. s- i7 H0 }& h) X
static int __init led_platform_init(void)
, ?+ e2 W8 [0 ?: ?2 L1 b( A* W9 N  h  x( D& m( j
{
2 X' d7 X# l; W; z, ]: \' o
0 V3 b* M0 R1 f! G) ?* B  M+ f; L        int ret;- A0 }4 b% V- S. O7 d  ]0 ?& j* M

/ g+ l: o4 E1 U2 T& P* c#if 0
$ i6 R# |. c8 t5 p/ H( D& B
2 m* }, b2 w, S) e: [; N) E6 O2 @        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 T/ L- ]1 d( c4 K2 i
, U5 Y+ E- t& f0 Y: z
        if (ret)
' |+ h* P+ y. x2 k! J  E( D- D
9 {, i2 A& D4 ]/ q4 {* n( P9 M                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", J/ w6 l, l8 b
2 t" N: X: v$ h) X( I
                                "%d\n", ret);
3 F2 {# z! b9 [7 a
% ^6 B% o8 {" q6 B- G& W. ~; `#endif
, ]0 C" y0 U( Y% z* k& O( D: r6 v1 a$ g: x
        ret = platform_device_register(&da850_evm_tl_leds_device);8 ~" n8 I+ h- M! C
$ P1 j. y0 c/ A( V
        if (ret)2 Y; {' A0 Z. R/ `8 C0 u2 \
" T8 ]% ~8 c6 [* `7 V. V
                pr_warning("Could not register som GPIO expander LEDS");
0 G8 g& y4 r( ~8 a  `0 g  E+ Y7 }+ Z/ [+ q; A
        else) ^; W# Q' \8 ~2 d$ d2 ?6 H* D/ o

4 e# D5 p& K4 I' [                printk(KERN_INFO "LED register sucessful!\n");
, `0 X% s1 [* t" e* r  u3 m2 }0 |3 X( U. |5 I$ ^0 w9 e2 s5 O; S
8 h5 k$ a' j% A$ |* L

5 ~5 g- q# G" b        return ret;
* h, o' n5 p% z/ e- G# e9 b/ [0 c& h* H' _7 A: B
}. ?* ~, ^4 z7 }# W( ^
7 K4 B" Y9 e% B1 B% L  Y

5 [+ ^+ V! C3 f4 S
4 K, {1 f9 o' Istatic void __exit led_platform_exit(void): X# U* I1 h: d  _, v9 z

0 ]- m$ q# g0 t9 P% a{
/ e, x2 W0 r3 H7 o% j, M6 I
: n* Y4 i& {( X7 |        platform_device_unregister(&da850_evm_tl_leds_device);4 O) \* ^- }+ \  L# C
5 j! _6 O! T7 O7 I6 ?

. J9 Q! F5 t: S& N' h" C% Y' n2 M( J+ i' [
        printk(KERN_INFO "LED unregister!\n");4 n2 B' r$ F6 n. f; N
- |8 o" P, d) @4 ?3 Z  \
}2 d& _! v$ G! i- y+ d  m
$ b( i( V2 d, r9 l3 b

% L; m, P4 p! E" D$ L! l0 |* Q/ G/ W! Q9 N$ X$ S% T( _
module_init(led_platform_init);- O8 |/ P2 i9 q6 O: |' Q
3 K- L& |/ |2 M& K! Q
module_exit(led_platform_exit);, _; o: T  a  N# d; ^
* g: L' F+ L7 H& F5 ]# Z4 {

7 N3 |' v$ Q7 R6 r! B+ b
! p! D4 |: o1 i' AMODULE_DESCRIPTION("Led platform driver");$ r; V" X* w0 R7 V8 e
  P3 U/ U1 r8 U$ H
MODULE_AUTHOR("Tronlong");/ Z' Q5 a2 b. P4 I( O5 G' K6 P

; f0 m9 c: l  G& _% C* ^6 D; K7 ^MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
0 X) O* C6 f4 e

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
8 @9 f8 o+ i, {您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。; f- p% r$ C& B* g+ {
...

0 z5 m1 i! e5 W好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
+ t' P. ^( e: G: c( Lhttp://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, 2024-5-16 11:26 , Processed in 0.043953 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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