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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 : a9 B) ?, M- N

# E2 R! r: I& x5 @) i请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的$ v- c& @! _/ z9 a$ G
) _0 X! U0 j8 R  z
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
) ]" Z# z" V5 N
# j% [0 f! |  T# f% R

本帖子中包含更多资源

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

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% y, V0 ?9 Z) N1 c
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

+ w1 _+ l( m- O, s# M% O我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:! f0 V% M5 J9 ]/ a
#include <linux/module.h>, W" H) w$ f$ K8 K2 ~( i2 ]& B
* ~0 _8 F% t* J* ]+ G. ~0 L
#include <linux/kernel.h>
* q! w, s  ?7 {+ A/ x' y7 y- t1 m! x4 e9 E
#include <linux/types.h>- `/ \  X5 J2 x" a! T4 W
" _* P: g7 t. ~: h1 E7 m6 }6 x
#include <linux/gpio.h>
4 ^# ?. e( v: s1 q( U$ L& l9 ]) P5 W& v$ ^
#include <linux/leds.h>
4 u, o, v+ E4 k; Y  a" ~
' ~. J/ `) \( R& g$ B0 E: {#include <linux/platform_device.h>2 J0 R/ s8 Q$ H' ~% J9 U4 s8 X

2 Q; R) o& A; Q" v4 J9 |/ k4 j/ G7 b
1 b! a3 G" W1 I8 c0 r' E" d
#include <asm/mach-types.h>  b+ r; z2 r$ I" L$ m

7 Y: R8 h/ O. Z8 [9 m#include <asm/mach/arch.h>" N( D( l0 X! d
+ I+ d0 m/ X0 |5 v2 @
#include <mach/da8xx.h>
) Z' U8 N- z4 d  g: {: j2 h. ]! @) Z; M" F1 }# p9 F
#include <mach/mux.h>
. J+ W+ ]0 x5 |' Y* s1 O2 d( A8 j% Y3 W

8 T' T% A+ C$ b' ~
5 E5 G! [' L( p( I* o! @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* P0 s$ F4 L& T# \
% z* p! U4 y3 o" A) e5 G#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) K+ T$ d  ~1 `. r- }: C1 e
) }* G3 F$ _3 H; p
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 f6 I; |" `; f' `
# O* f( Z4 I# i1 D' a
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ b( l/ y9 E/ U. P, ]( o. Y9 X5 s/ Q5 M
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
( r+ L5 \. f" |1 Q9 ^; z$ i) ^' J3 Z: M
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)' A' c8 E& p0 l- x: O* w
$ n' c# R  H, e$ n
" b" R" e) M/ T

" N* ^9 I( ?5 K7 g) O& u  K2 ]/* assign the tl som board LED-GPIOs*/
1 _4 W, V' R7 L8 a0 k9 s. _& I+ A3 B9 l& Y
static const short da850_evm_tl_user_led_pins[] = {
7 W8 s) Y/ R* L' z  r2 \' t/ t0 b+ j: j
        /* These pins are definition at <mach/mux.h> file */) `2 P4 T& l* I9 T: p
$ J2 \% a. C& H, j
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
" e$ q% n" m& c# l$ m5 F' o
' i! K( ]7 `2 z, G5 O8 r        -1
. r( d+ ?, v9 }/ U
- {2 o6 x3 F* h* \* b};  G- J5 j9 P8 A
. @- a. R; _$ i) W6 B1 l
& Q/ A6 v! E; u, L5 O6 y9 F
( D) ?/ T, X  ?9 g# F3 W
static struct gpio_led da850_evm_tl_leds[] = {* l/ J) T7 `+ \0 t
1 Z) J0 c. y/ A, G1 v6 j$ X  e
        {
5 K4 U/ e$ h. N! `
1 }' F/ d& s1 x! c3 y- r+ q                .active_low = 0,8 R+ e5 w1 e1 K; H1 Y, P- k
: D5 T8 I2 b: N; _
                .gpio = DA850_USER_LED0,1 {9 y5 q2 ?9 I6 ?

: K' B; O7 o4 F# n1 ^                .name = "user_led0",0 s8 @$ P9 V+ @- W

9 ~6 E1 E3 a# u9 B+ D0 w6 ?8 b                .default_trigger = "default-on",8 S3 |+ w% Y# c4 r6 y  R
9 r/ R1 X0 T  v- _5 K( l* m
        },8 a$ ~( s8 P# H) k" T2 q3 W

  y; @1 N$ L+ a7 K/ @2 x2 n( S        {
7 I  d& w% |$ N! L! j# ^
1 d9 z! {# X6 C+ G                .active_low = 0,; ~/ c0 O: I: Q

& c$ U* L4 w0 I* h8 l                .gpio = DA850_USER_LED1,
5 w5 x$ K# l$ K- d" L% d! h$ U) M7 Z& B2 n: T! n
                .name = "user_led1",
/ b' T, @& Y8 t. ~5 n/ r; n! @
5 i3 m' J6 x3 w2 O$ t4 F                .default_trigger = "default-on",
, v7 g, h: e* p  L' N* t
- L+ \$ K1 r% R: H- e) \: |        },
' @* A, Z8 o; g& p
" e2 V) `, G& X$ q; n# N        {
2 q; }  p: D/ K- ?9 D6 M% r: n1 V& G3 w6 I" a6 k$ `
                .active_low = 0,
2 T6 J7 E6 J$ x1 h" t8 u, }+ E' h1 v; S0 S5 q! S4 l
                .gpio = DA850_USER_LED2,9 Y( U1 Z0 s: w9 M+ a. ?( `
1 r: K. v  o+ {" g' t. w3 `6 {8 C8 X
                .name = "user_led2",
) z/ D0 r* t* L+ x- w; C
& _  |- ^% T* O+ ^                .default_trigger = "default-on",/ g2 ]1 r0 {$ P) J! Z/ S$ n: p+ R

- o: k2 J* ?& ?6 ~/ z# H4 C2 o        },) r" i" Z9 `1 Q# H
3 t3 O8 F9 `7 e+ {0 e$ q- ]
        {
+ y1 N( M% T& G0 t$ e7 |. a( r! o; q1 m' e6 a6 |, t6 H
                .active_low = 0,
3 Q! e2 y1 K) B6 q2 l( n! Y) `! e: _2 f9 {7 h
                .gpio = DA850_USER_LED3,0 Y+ |. K0 W# p
$ g+ r: D; M" n0 G" E
                .name = "user_led3"," E1 e( C0 ?$ _2 v: G6 b

/ m3 |* R: e% U" o                .default_trigger = "default-on",
! Z3 R  \( I. Y3 {" M( C
  x2 f6 ]& u/ i* y; p. G% s        },
4 _8 ^; b/ M! g* M4 f! D% J8 O( Y& C' I
        {2 E$ }! r5 H3 i
% L* ?. ^2 A( ?2 K  W4 }6 C" `  e
                .active_low = 0,
3 R2 W- }4 a2 H% e6 n9 Y7 {1 r; j4 l  @0 y6 Y& n
                .gpio = DA850_USER_LED4,
8 S3 t5 P) c+ X; I. b! d5 a( T- s4 @& l
                .name = "user_led4",
" `  P5 v* g* Q, }. I$ n( P( ?# A/ e8 |8 e) ]+ W; b9 ]4 M3 n
                .default_trigger = "default-on",2 o( X4 r  W- M9 g& [; C+ f
2 m. ]) S& U9 \* l
        },3 i9 {4 T" O5 \* r, e! @" R

, |2 K8 p9 n3 o! {        {
; s" u$ ^3 f! S% y7 K6 |( l
: |' O5 }0 B/ V' E                .active_low = 0,0 y% ?. [+ `3 b' \* J
$ D5 ^! u# p  X% G6 V3 C
                .gpio = DA850_USER_LED5,
9 W+ q& H; S; f$ z8 W5 @" b$ S# M1 V4 V
7 X* D3 _' ~/ g( ~                .name = "user_led5",4 B% W* z0 Q3 u5 f: y

( Q* C( ^* C* Y( ]0 a% C+ _                .default_trigger = "default-on",% G! T# }2 ]4 s+ L" e

) c' s: P2 n7 A! ~9 D1 a% R$ s& @        },. ^3 j* w4 I3 F" j2 |4 Z. S

0 G6 ~5 a3 @( n};# r3 c& H  a3 V) ^

( Z, O: Q2 ?1 J) d( _
( Z6 X8 ~3 u* K' y& Z0 d* T  n5 t; n# L, c
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) e% M$ U( ?# G6 h' |3 @6 @& H( K

  E7 _! v6 I2 X" x3 ]! [        .leds = da850_evm_tl_leds,
+ _/ z0 S7 k) x- \$ y
* S* j2 V+ `4 \: D8 y  R* g        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 d1 z, g. ]* \$ h% w
7 l& {) a4 K' w  l$ V) @, v  P
};1 e/ L9 k4 r, {  b3 V
6 Y% C5 V/ D5 E8 f6 s' v  W/ g6 z6 i
  r, m: I* H8 B4 w% N! L$ v7 P7 Q

- M3 y/ y# q$ nstatic void led_dev_release(struct device *dev)2 N( V7 z5 u7 Q, f$ q# |- W
4 {$ C8 T6 j, N: @" d% n' P  Y
{+ b; y/ h5 L# ]' M+ j

1 i( ]( Z9 z0 p; r  z' [};
& @. a- w7 C! p7 N' c$ l/ T! ^: \" A+ b/ L2 s+ V6 I* ?; d! |
* X% _% ~3 y- M- M5 `  K
* ]) T- l8 B! o8 n2 o) _* ^
static struct platform_device da850_evm_tl_leds_device = {6 P; z% q* A2 w+ l5 R% B$ p9 B

/ p& s. J& ~9 w, Q$ z6 Q) |        .name                = "leds-gpio",
: m& f4 m- z& i! m, j$ Y5 T) _6 X1 F/ x& c5 [; h+ N. }6 L
        .id                = 1,2 u$ _" P% n; ^7 C! D5 _7 M8 ]2 t
5 q8 `. w7 j+ d+ C3 r' m
        .dev = {
% P, }  S; i5 ]9 G" T
* h  B3 S( Z9 j- y                .platform_data = &da850_evm_tl_leds_pdata,2 C. P1 i' ]( R. k2 t" S# U

' m/ i/ W2 V  R- C4 T                .release = led_dev_release,* ]$ ]* e2 H, d1 ]' F
  F2 f0 M' x2 h$ }1 E
        }, B, A8 ^! _) f1 Q* J
  P# c+ x' R: O, L4 x
};
: x% A& d  P. ?$ T4 g5 B: b: {1 `  n1 Q+ o. J* B
" V4 A- J+ y2 z  o3 V" P' @) M9 X
  P9 P8 K/ ?+ N+ G) Q
static int __init led_platform_init(void)& w5 _2 Y& r$ s- p: z$ c5 M1 c
9 t+ I+ u3 u: {# z( A
{+ V4 H: G1 V. {" X/ v- l

# q! A, x" F( r' v& K        int ret;' E* c0 F$ @5 N9 }

  x1 i2 ~" ~2 y8 s3 T2 o* K#if 0
0 |- W2 r- p( C7 L* `
5 L! y0 @4 P8 j% I        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);$ C$ ~, E, i/ |9 P

& O% p+ [' Z( Q- R% J" i/ x        if (ret)
, g5 Y9 Z% R/ O; k$ C, j5 x. A# X% J3 I3 l4 s9 U$ S3 k
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 w3 }* c0 T& w' M0 G; _

, N; `; w3 B; ?3 d1 ~% C                                "%d\n", ret);
$ U. u+ o0 ^7 h4 [4 b5 J
) _; g) M5 E! P$ g5 H2 O#endif! l, U4 P* Q* M8 M; c
7 ~# z$ Y4 X8 ~+ A7 E
        ret = platform_device_register(&da850_evm_tl_leds_device);6 ?7 n+ ^8 M! a' x2 a9 ^
! Z6 W( [$ q1 X" y0 S/ j! U! [
        if (ret)
0 Z* N0 R- A6 B- r
# u2 f/ B6 s: w: Q) I                pr_warning("Could not register som GPIO expander LEDS");# l% Y1 m; L! [7 p9 k. d+ ]

2 P, t- w# @2 Q; w5 K; ^        else+ l! [+ ?( l6 b0 M

7 n! k* T" @: i( H0 X1 t) Y# m/ \                printk(KERN_INFO "LED register sucessful!\n");
2 }8 j" `9 @  _9 _0 S6 |# {1 E0 F% `4 O# ~; k; k" G

! e" \* V4 ^: Q  `( e3 B/ X& N- Z. o! T4 N
        return ret;
5 |' p8 {+ w) E( i/ ~
$ E. P( v0 U2 r% }8 [}
# K* \  F! a0 K( Q; b' E( ]" a, R# }9 F
$ t6 z0 w  I: h) b" |
) e5 R" _  I: _( P) t+ y
static void __exit led_platform_exit(void)8 H# K( n+ O3 [3 ^* V; G$ t: M3 i9 B
2 q& R- I- U8 S  O
{) v% P. u+ p5 o$ p+ N- T
( I5 w) |: P4 t5 V* R, q% ?3 R
        platform_device_unregister(&da850_evm_tl_leds_device);
  q% k& T# ~0 m, R2 u0 @; H& b2 |* ^# J2 h

$ f# y, d4 z1 i7 R4 [9 C4 R8 x" s6 N+ q
2 Y2 b8 |! ^) S+ Q& W, b7 S        printk(KERN_INFO "LED unregister!\n");
$ O8 v5 _7 ?  O1 ]' j$ h) y6 L: F& C
. N6 C* @7 K( [8 N}. Y% ?9 a3 I" b) t3 j% F" ]
% ~: M, }* R& H+ L! b5 Q0 O/ S
; L2 L, E, a, q
5 H4 v7 R" g5 [+ m) s/ R; J
module_init(led_platform_init);% t* _9 _2 g) w

! w+ c0 h# E/ A% Jmodule_exit(led_platform_exit);
: b( e. S' d: P/ N; q  z+ k
. P4 z6 V) R2 q
5 D' m4 o. l2 J+ X4 ^2 E
5 g( N9 ~7 F' a2 s* gMODULE_DESCRIPTION("Led platform driver");9 C8 H; F: o: x) x5 i
, T# W2 s5 {+ K6 E' ]0 }. m
MODULE_AUTHOR("Tronlong");
- e# a7 q5 G# e- e) G1 \( B& Y
0 Y! E7 M$ p/ o5 N8 J: _MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。, l9 c$ L2 d% Z* e: |- Z- b1 K8 P

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32  M4 ~  E4 Y1 |7 m5 o
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
4 R) p- N2 s! ~) J. f- M9 x6 H ...

; ~2 h' }7 K9 z% l$ W2 w好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
% G" g7 f+ ^' w2 ihttp://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-3 04:04 , Processed in 0.045900 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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