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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 ) o/ `% y9 {0 T( D
1 S5 |8 a  S4 y4 l
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的$ X1 I: [) H7 P/ S4 a3 S6 ^3 Y

1 a$ ?' X3 ~0 {5 a5 x: G. n/ m: O之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?% s# ^) S9 g( v& J
1 \8 J; R7 N0 J* ^

本帖子中包含更多资源

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

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
6 G, i, b  U4 Z. G8 |6 d0 xlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

0 x& D2 K& k. F9 f1 T3 U我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:5 a, s7 B/ Z9 C6 X  n! l6 D& _
#include <linux/module.h>
! Y3 h- ]- u) Z- y% S+ q1 v6 C+ @2 n6 s9 ~( m6 x
#include <linux/kernel.h>; ]2 v! }8 z: s& x2 B" f
( i: f' W7 N2 a# ]
#include <linux/types.h>. d+ Q2 R* G, e7 ^0 e8 ~

- z. K, u6 N( @" _5 i! E, u/ @  U#include <linux/gpio.h>+ e" H6 }* z, x% W1 [
3 L! ~  g( S4 L0 u" f/ c
#include <linux/leds.h>) J7 M4 L9 p* w7 _

$ w9 k9 e6 s1 i) E+ i#include <linux/platform_device.h>
% v1 n3 w1 |) m& ^. b
7 Q* V' J0 m6 f
+ d+ |; s& J' _8 V
+ B) p. ~5 j0 \% `' g#include <asm/mach-types.h>
% m' w/ }0 Y1 P9 v+ `6 W& G! Q) }9 ]1 h! O$ _+ Q# E4 R! ?
#include <asm/mach/arch.h>
) B, `! B, @5 x2 @: y& m1 T2 [
4 |' b2 L' J8 I; ?4 ?#include <mach/da8xx.h>
  B7 k2 Z( s3 A7 t: b4 u0 x
, M6 S9 c; K/ J  J! L" I#include <mach/mux.h>
$ V& ~: V* o+ V9 V( q, R+ E" o

# L0 a2 f! H7 x1 x+ R8 |
* K8 S& L' Z$ V( v#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 M" m' u2 Y3 U2 ~# H
8 ~1 S4 ^* T5 a9 D% [
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 t! \# m( T( N6 O2 H- b! M* U# l
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* g9 i, R2 U3 R

, I+ f2 s0 {+ @! r% b1 B#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) P1 q* l8 M) M/ y- k9 L2 v) W9 ^5 ?. I1 {5 ~
#define DA850_USER_LED4 GPIO_TO_PIN(6,12): f4 G# k# \# s; f5 ~
) l# ~1 l0 ?( O
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)% ~) G- M+ z7 g4 M0 q: t
6 Q- E( P1 w) x( ^8 ^, k

: j: Z0 ~9 P3 L% f6 u3 w' X) [0 V! m1 J9 f
/* assign the tl som board LED-GPIOs*/
& Z' m0 P; t2 }( G; q
' B7 ^2 i& x6 T; @* c$ L$ Mstatic const short da850_evm_tl_user_led_pins[] = {% V) B5 w6 I3 g$ o6 N" O
" ?9 x9 r$ O% Z6 t4 u
        /* These pins are definition at <mach/mux.h> file */( g3 _* M- ?/ v) k4 g

2 f7 ?: K* P0 S9 v! Z- A        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,; V9 j+ n' A, i  o
5 {' ?- x, X  l# u4 G3 \
        -1
& \0 M! v+ w/ u/ V$ B7 D( F  {! ^; T7 a6 ~9 O. j
};
% A2 w' o; o4 k5 u1 s2 q1 n5 o0 I. D4 F/ S4 N, g

& @9 O" D8 l1 O4 C3 l1 _9 O  O8 a
/ l& u6 \& F  I3 {static struct gpio_led da850_evm_tl_leds[] = {* y' C) E( E8 c7 W

: P$ t6 h+ Y' i! E        {
, C- i; z' |! m4 ]  J0 n: O2 r- H1 i: h
                .active_low = 0,
) r+ v0 p- P6 _$ r$ Y  Y$ O. e2 F
3 l% k) D8 j. D( E. S                .gpio = DA850_USER_LED0,
! u2 m+ f+ W- W, G. C1 {( R
& A1 l$ v; e0 E8 v& m/ p                .name = "user_led0",
7 H, V7 a! k4 `
4 \& j9 ~% k8 @" _8 k2 k                .default_trigger = "default-on",
% U( j6 y! B3 k8 M2 K" S4 Z' ?2 i7 K$ i/ l1 b
        },
( [8 u9 ^4 X1 }( F( f9 v: Z* P% t6 _+ a8 Z/ b& |, X
        {8 M/ U6 p! e# D) I4 @9 Y
6 D6 P* }7 w8 d) [* j, c! y
                .active_low = 0,, j0 B7 F2 C7 p
( f; Y7 {% L8 v
                .gpio = DA850_USER_LED1,' Z9 H, T4 o& i' }0 l

: n2 i" I0 Z. Q) O4 r2 x2 }                .name = "user_led1",: z; C! S7 F. M& W3 M! ?" f# K- m
8 [0 q( O$ i4 I) z+ d# o
                .default_trigger = "default-on",! a5 L: q& ?2 C+ y5 m
2 F, J* z0 J' t/ O1 e( O# \
        },* S7 ~/ e  M, W

2 ]' z! I) l7 R        {
$ w! V( K5 A# k7 p9 R6 n; [2 c  m$ t
                .active_low = 0,
0 R& @& C) v& t% d
- `$ W8 c" ]+ H8 O+ E% b3 c0 o                .gpio = DA850_USER_LED2,
, e4 d  M/ J& w
* F  t4 o# _- E! G                .name = "user_led2",
3 j7 D2 s  w! E! Y% q( n9 N& q
* V3 x& _% j  W! k                .default_trigger = "default-on",
4 ]7 l. k! {8 _! g) y) ^+ Y
2 c7 h* ]# ]  }+ z7 p" l        },/ r+ W) z2 s9 Q7 y' h# L

- W/ N: C0 `, I  N. U1 T' w3 S        {
# T6 V! @7 `+ J8 D
7 R$ j. C+ m9 W; a$ b& Y$ R5 {3 j" m. r                .active_low = 0,
2 f7 s3 k: e8 |$ a  b% x: t9 V4 C5 x1 z2 ]+ O5 |
                .gpio = DA850_USER_LED3,4 N- S5 V8 \1 M/ U6 f& l9 m
/ J( Y( j: l( ]/ z; ~- Q2 Q5 c: I
                .name = "user_led3",( p. V7 s8 G/ f

7 {, w* H2 o6 ~1 w9 M6 t- ]6 S" L                .default_trigger = "default-on",% i: Z; v$ v5 N
6 y* p7 B: I# }* B' H) G1 k( o# s
        },0 X6 E' J: q4 [( T# @( B" v* M

. F; R) Q) ^$ d( m$ \        {
* f( ~  m4 J/ x, `4 `1 `3 ~: {& e: T7 P
                .active_low = 0,
& b" z2 |* o; P$ i. s; A2 r- Q0 e$ C
4 A. E5 I/ @& b, Z* t                .gpio = DA850_USER_LED4,4 g+ D7 c; I+ G1 ~

4 L: L5 K8 V4 }8 [9 B                .name = "user_led4",6 K4 [8 D4 A/ R; b2 s4 K
  g7 g( O) ~" {6 X9 x2 E8 p: |
                .default_trigger = "default-on",
, x6 |/ p3 q4 `. P, |7 b# L7 |. a# s5 W1 B
        },( n: s( n3 F3 \- Z4 p% e

( P" p" A# H, S' X# q0 I        {
! Z" z( l  M- Y1 p9 M% ]$ z7 s$ n1 g& S
                .active_low = 0,) `* n, a6 {5 ~8 {% _

+ {8 n" `7 I1 }4 k                .gpio = DA850_USER_LED5,/ O  E! |  O0 `5 z4 K" z  a

1 C4 T# }& l) E- x6 F) r/ C, |8 X2 h                .name = "user_led5",
3 ]& n6 i/ q6 \, }
2 d) z0 E7 W# \5 V                .default_trigger = "default-on",
4 v, N- [/ D7 t4 i6 Y/ e
6 W: w0 W/ ]- A        },* d' W. M  m- t- d" W, M8 i
; K2 j% E' N3 @
};
) `" b# E: ?$ Q, U; K+ g" D9 S
% ~% T$ A# y- k1 p9 _+ ~. P3 j% F

( K! `6 h7 b% r* Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! Y' p6 {( I2 F' x. \$ S8 [5 e$ j; Y' B3 x0 L/ E5 ^% h  ?
        .leds = da850_evm_tl_leds,  K/ C8 L" ~5 l) U+ O

2 z" ^6 W# @! O4 A& S; Y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- E' I- A6 c+ j" l( [+ t
( H( k) M" |) u
};
+ B) Q: c8 V* S! ?6 f# ~) F3 b% e$ b9 |7 s% C5 M/ n

2 N2 j7 m; A3 D" Q5 d" B! X( {9 u& A8 E
static void led_dev_release(struct device *dev)$ ?; N; \, F1 ?

* n( @; w* q& @) K" r+ [{% D3 E' D+ w. N0 W
( O. v/ z: z& O  H: d$ w
};
7 k. u$ `( N$ G5 k5 b# i+ S7 B" p: g5 z8 o! l! B- A- L5 o

- o/ D0 z8 M2 X4 S9 A8 R1 ]2 X2 Y5 `1 x# i) J
static struct platform_device da850_evm_tl_leds_device = {
8 ?' i/ L0 E* c& i2 [( \& S% h  k
6 e1 q! Q6 E8 g# E7 m        .name                = "leds-gpio",
7 Q, J( Q- U9 T2 M" f; T+ e4 S7 l6 C( L9 C. w; u
        .id                = 1,( @/ G7 ~; u- ?- f) f! R% {
- ^0 L2 _7 s$ t
        .dev = {' E' s' u, ^" e
8 n( {6 S0 a  [/ }; ]% E
                .platform_data = &da850_evm_tl_leds_pdata,
. j4 A5 ^+ y' B- Z$ S9 Z  }8 _  F: r7 Y8 H' W0 d
                .release = led_dev_release,- B/ X+ T" n/ J. Y; o3 r

& p! c4 n: Q  t$ r7 m& t! u        }6 @( Y6 {- H7 |5 T
( _7 g7 U9 [% j/ _
};
% _/ n6 A8 \, ^# t/ J3 I3 M) C+ }0 L5 l! T

( O! t, V+ c0 l/ q5 \7 L$ Q4 h, T3 m% w( a+ t! [+ ^
static int __init led_platform_init(void)
+ ?5 S( t! U) N0 x: k9 ^" {, S/ M# b% Z8 T( O
{
+ q6 C6 H% o0 i, c0 }2 n
) ]+ U) W/ y: y! P+ I& u        int ret;
% Q: G; s2 q0 O2 R$ ?8 h: [( g3 q( E
#if 0
9 _( a( g$ v& A8 T6 |$ X3 ?* _0 d4 }% I0 R$ t3 N* F, @% w$ V
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" \- l0 }; K$ _1 J8 c! O7 e  O9 ?
% h6 O( N- O5 U7 B( @7 t' q( s
        if (ret)
2 r( y/ u) k/ m. v! D( s
9 S' b" M2 U6 _; u) g8 g* l                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! F1 N2 f1 w3 _1 N+ ?0 D6 P8 N% ?* k4 V  m
                                "%d\n", ret);
: c1 t& e; `+ Z" p" p$ t' c) z  ?: ?# s: G. [, a6 n5 B8 H
#endif
9 t$ R: M" S" R. n2 U9 }
/ x* w  x8 D6 B% |  q        ret = platform_device_register(&da850_evm_tl_leds_device);
/ m/ n' }6 m, G8 g! ]" k7 g( K. O: t7 s) U  r" T( R3 B
        if (ret)/ y2 O2 Z4 B1 i* R( m; ~: a% H" C
4 H8 ~! \7 h8 E2 i7 q/ i, {
                pr_warning("Could not register som GPIO expander LEDS");  }' z; a" [' c& k
% ~! ]+ p0 i2 B; \% H+ @& q! G
        else
' _& c  u/ z: j' `
) E5 t- }! a4 y$ B3 c/ p0 _                printk(KERN_INFO "LED register sucessful!\n");1 ^5 J( W9 W0 t( M* D
" X( S8 G3 @* T. e. p$ W# P

0 V5 ~* ~& U8 W9 R7 }( I/ u& z8 G* Y0 B8 g8 }
        return ret;6 ?/ m) H4 F1 C& \
+ e" |3 G) X6 _1 B
}
4 }0 {# }3 s& a3 Q6 Y4 {( |0 g$ \9 }( c: R
3 v; s, \3 `7 m% X) N9 e
' Y3 N. ~7 \/ g" `0 a/ ?/ t
static void __exit led_platform_exit(void)- d6 y, Q6 q0 `$ O4 V9 |9 D/ d

, R" C, J' L/ f{
6 l- u7 D* c6 A4 z4 q  h' C. q$ |' a3 x
        platform_device_unregister(&da850_evm_tl_leds_device);) V- B/ T  C4 \. U7 g

% p; v1 L, U4 P: u9 m9 m/ x
  |# h  \1 u4 O' n& N
% {' k% c" G- w( r+ Y+ M        printk(KERN_INFO "LED unregister!\n");% m% t: g6 W: `
% C6 D; B: K1 D0 J- g" j2 z
}
# A1 X1 O/ O0 I: T7 r8 R0 X8 i8 a$ A. e. ^3 C% _
6 ~) l3 r: _7 h/ T2 T

  P& G, w0 q$ G; a2 R. mmodule_init(led_platform_init);9 f, ]+ }# D0 G# Q8 Y, D5 f
# W& L  e8 d2 X. ^' S* Z: I
module_exit(led_platform_exit);% o# V9 C( H( w7 ?

9 B) ^  T0 C6 D4 [
; i% ]( b; u& Q0 L8 N* O
; L3 m& R( E* p$ i* NMODULE_DESCRIPTION("Led platform driver");
. B) _0 V6 N" I. r" _$ R* C' C6 w, V2 W* b, g: y; _% s
MODULE_AUTHOR("Tronlong");! W0 v, J1 N- h# b
/ _' {$ N2 T2 l. E! K
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。3 Y% _# l# e/ C4 e' ]1 Q8 I

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
0 n. n, s% p, `- A. M& p# _7 D您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
1 o; X$ }1 @% {- J2 E9 ~+ S2 ~ ...
. k0 ]6 U9 G2 R- q5 S: A$ K% r
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
+ [9 }& R5 ~1 P5 r8 I4 R, Fhttp://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-18 05:35 , Processed in 0.045267 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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