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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 + ^* ^! Y$ z7 I# B/ x

; a" F# g" X$ d$ |请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
7 w( Z% O$ j' e; Y, z5 s1 _+ p3 z! M' y
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?1 a& i! A) y% E' R9 E" @2 `
* `) `$ k/ t; q4 z7 e

本帖子中包含更多资源

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

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% W) O: s* N9 L/ S3 V9 P
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

: M/ G0 o; F+ ^7 F我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:/ E$ t3 Q) q2 W! H: R* ?
#include <linux/module.h>/ m2 q8 H8 o9 F' W7 k& f9 y  }% J
$ J; b+ v" A9 e" c7 [+ @- v
#include <linux/kernel.h>
$ j2 U* ^) m7 k, s& U- v' g1 B, S9 s9 ^$ i
#include <linux/types.h>, ^, b- E: _  a. T7 w& V% O
% Z- S! M, ?2 e. E9 S
#include <linux/gpio.h>( ?/ R/ ~, n* [  F7 ?2 D

: H  l' {: q' e% h#include <linux/leds.h>! E9 v1 x, T0 t4 |7 A$ }  k0 {

8 H2 y3 N/ y/ A9 W8 s1 s, U#include <linux/platform_device.h>
" D  n( e: ?* A' Y# f4 W) d$ W& D6 W) Y. H" e" z- l

3 C5 ]" |  h! l4 C7 X- y& s$ f: @6 t$ {
#include <asm/mach-types.h>
$ O4 J- w% S1 L) _! D; T2 Y' j2 J7 m1 _/ x" p  F
#include <asm/mach/arch.h>
: i; R2 d( g* s' N9 @. p
- A6 S+ ^9 O% h2 }#include <mach/da8xx.h>, ]  ~- x' d4 ?4 @& Q, j
% I8 z! @5 o* ]! g/ R2 g
#include <mach/mux.h>
: |" S) ~4 a% Z8 ^: ]* R  z  Z; X6 D: C7 c3 t( M5 N- e+ {' h; p

5 b; U8 j9 g2 ^& c* K3 \
2 k5 {4 H; E  t- k. B, W. P#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ d0 g0 I/ k/ W: r' Y& X/ b
- N) C9 C: f- A8 t6 }  q4 x, o
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# P# l8 P0 I; L. R

6 _( ]1 J& A0 E. b#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& A& k; Y9 v2 i, z" ]

% v# O( X5 D  l0 m* q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 p% y) W  R7 v9 Q4 ?
7 v8 k- e- c  W, C% E
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)" T) ^  D# \+ j9 {9 L- J
1 r0 `/ l6 X0 Q' X9 Z
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
4 b- R* [5 A' g' X. `/ z* E9 K& H% A. L) t$ |. o
) l/ k' _( r+ M& x6 l

5 Z2 k: y9 ^0 z$ D) I/* assign the tl som board LED-GPIOs*/* c' m) F' G7 T5 m6 z( W
# l9 @3 ?" L! n9 f  S/ h
static const short da850_evm_tl_user_led_pins[] = {- z" U' I' F3 A' U- _( P
! D' b& g& A, Z- f  C1 x
        /* These pins are definition at <mach/mux.h> file */
# u8 w$ b+ K2 K' I$ N  ~% b/ n, g4 _$ m* P# m0 h
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
, a8 p; p. Z/ \/ C4 n' p- K0 p5 j$ }+ G, o5 [2 O
        -1
% C2 V" ?+ D! P" U" C  t
; r0 Y4 h* s9 O! S8 J5 v$ |};
+ D' D( [+ M; k! f
2 n, k) ~% W5 a2 ?) [+ a4 a
0 F4 y+ j9 T* K8 E+ t* k8 h/ i. M; d7 y( |3 `6 B& `3 {
static struct gpio_led da850_evm_tl_leds[] = {
+ |7 }% y0 F& X9 G8 e2 l
* `1 |: y/ H# y( J& z- y% Y        {. w% c4 y1 [8 |3 s
! r% f; D1 w* ~/ ]) J
                .active_low = 0,: k$ P' d8 l; B  {9 M
0 X4 x- l9 {6 r9 B
                .gpio = DA850_USER_LED0,4 _. V* x& y  U- L2 d
: ^' m! [9 t' G5 B: S+ f3 ]
                .name = "user_led0",- l9 k6 n1 f- }1 F: U6 M

, w) }, _: {0 L4 f2 ]                .default_trigger = "default-on",
, Z; N/ Q6 c8 R8 R. R$ U9 t+ i5 u+ C) ^  m. b
        },
' d/ Z  R1 M. R, L, ~
' j6 p$ G/ S; W" U. G        {
6 r& U. F2 ]$ I5 R1 a+ D0 e* ]: C% _  o5 }/ v; D( `( \; F
                .active_low = 0,; e0 M1 q, t/ A. ]3 u

) N3 b  C5 a8 x# g) w) P& ~2 T                .gpio = DA850_USER_LED1,
1 [2 u* I9 V3 h& R* F! h  l5 E% s2 Z( h  G" H
                .name = "user_led1",
! y: s+ q1 F. ^: L- }
3 Q$ C, M- Z! W, X, d% j                .default_trigger = "default-on",) m* y) ]: k( D+ s- _
+ C( {3 q/ [* H, J& m" n8 r
        },
& I' E: D, u- \; Q! A# c
8 A% t5 b1 q# k  k        {0 N. I. c) L% w3 p8 m  @4 N; a
3 M8 {, o  q$ F0 _
                .active_low = 0,
% R2 e# y0 f0 C3 |% U" O0 P" u+ i+ @2 M- ]
                .gpio = DA850_USER_LED2,
1 O) q; n+ d! p0 I8 H0 Z5 o! K5 y7 {/ K, V
                .name = "user_led2",) o, _8 O  S; R
/ @5 ^4 _! {1 e: v
                .default_trigger = "default-on",2 H& `) K# `% G

  M- C$ V5 P6 x& T# X8 y        },% a* i1 ^* m9 O  x1 b
3 R! W" s" H2 g" r( P
        {
# ?. z2 H2 G: T' a  `+ p! `" i, e& J6 T3 O2 x
                .active_low = 0,
# z5 e: B4 y. T) X1 T" H/ I: |  p0 }* \- c' J- ^% u
                .gpio = DA850_USER_LED3,
) x0 E! h4 A/ J9 l+ |# K
2 O* e3 F% ]! \+ I& T1 M                .name = "user_led3",6 L0 O0 m* k' ]5 A

' ~+ X9 N1 d# u7 n4 c' B8 O                .default_trigger = "default-on",+ m5 `* G% }. O

; P' v) z$ a+ s( V2 _" ~6 y. A" R        },
2 `" c! \/ D9 c# n& e. P5 k$ p- h
. X& c  o5 y# d; |: m' n( U5 Y        {+ v/ l9 b! V0 m) `% ^4 F
6 t' y. q8 d- h: g
                .active_low = 0,
5 J) O2 q& n7 z9 d4 W4 _6 O+ f1 f/ T2 N! y- E5 v
                .gpio = DA850_USER_LED4,+ r* T! M" h1 m; S9 Y
; A3 M& V+ H2 G8 o  J
                .name = "user_led4",8 i: j# ~2 `, N, c; e

# Y) `7 O! f4 t                .default_trigger = "default-on",
' L" Q  b1 r5 F- R6 \- j* O
; m+ O2 V1 c! j5 O        },
; S5 {4 g: j7 E: S. ]5 N& A& n/ Y
& A) C6 a0 Q3 h9 P8 c        {3 e6 n8 W$ f# H; Z" H% P+ P$ f- H
$ y5 i! {* h$ }+ Y/ F; n2 Q
                .active_low = 0,& p" m2 Y2 O7 N+ q* q; h

0 O6 M* M6 Q, {  ?4 J                .gpio = DA850_USER_LED5,, ~9 k5 r4 e+ I2 i

5 ]# d5 k: T; O5 X                .name = "user_led5",6 }8 A7 B# w( G$ T' B6 A! i
4 e) b& i$ D! w; u; E& ^' ^
                .default_trigger = "default-on",
: K* b: R( Z2 y( C5 D5 X4 ~- B+ r) `+ O! Y& Y$ H8 Y0 V: O. W/ v1 M% ~8 k
        },+ V; k# ^* ^0 {' k5 J

+ g3 u4 ]: S! S5 ~};. y% g" H! G# l! U* N

0 a, F8 j0 O4 m+ y, S5 e
8 h4 I# f3 T4 Y6 r9 K
% ^# I& F3 M9 p( f# o" x6 d+ jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 `# b, _' u# p
0 P  y2 o/ _0 k% r. s( j9 ?- w1 ^
        .leds = da850_evm_tl_leds,
: W& Q3 f" j5 j. k0 b8 v' [
( X' F+ Y- v/ E9 \7 {1 K        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; d8 B. l% r9 `$ }  \( P' K9 M$ p6 ^: E8 S
};
2 ~5 F4 X! ?7 o7 u3 u
8 b5 z0 _) v3 l1 g" |' ^: p7 O
0 x  O$ }' U7 E" L0 I, U' m8 D/ F. k8 D1 g% Q* l( p/ L
static void led_dev_release(struct device *dev)
" n) B# C/ @+ P; A- U
, N  h% u+ K* K7 H# Y{/ |8 D, S( a, w2 ^8 [! ?

3 F. {  v9 Q$ I$ K8 a5 ~* b4 o# N};6 R% E8 f. P# A& @* I; e$ U: o
4 H& l9 c! H" {$ ^" G/ q# k

# m, k, N0 T  a7 o! t. C% p5 h3 P- m) e0 [
static struct platform_device da850_evm_tl_leds_device = {( D( i) T  W8 o
$ w) Z6 Y# v( v2 u; v' {
        .name                = "leds-gpio",
4 j4 X4 I% r, D: ^& w; S6 j! V  ~
        .id                = 1,( e: ]% x- j* v' v: [4 o' e

/ s! d6 y" Z+ n. F        .dev = {
# v- C: T0 |7 }
7 _3 |3 p' D" T* A+ Z7 m                .platform_data = &da850_evm_tl_leds_pdata,
4 _  G1 |# v# [* Q6 i9 l# G! x; A) G# v/ Y6 O) {/ ^
                .release = led_dev_release,
4 Z  j5 b5 S5 {2 Z9 m3 B0 @! z% ~. R, N- n$ K4 i
        }' d  c3 R" p' g, l

' j& C. D  |6 B9 g; c1 G: l2 A};! }! R$ b% C; n3 J$ Z  j$ p% r7 B* b
: u% H/ i1 }' D. X
" B/ S( `  a: p5 x9 W" ]6 `" P
2 F. {; \8 |, b! a
static int __init led_platform_init(void)
* g) _. W4 Y5 @! |
) e' T* o+ t: l% Y5 r# x3 F* M2 G{
! e% j6 \4 j3 K+ |( e. B! }  d: `, D, D$ l
        int ret;: D; g  A# O* `! m7 \0 b  N% P: [

( E! ]3 I; r$ Q#if 0* N) o" z% `1 z4 N( u# R7 W! J
2 B/ p" e1 y5 t2 K
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( H, v9 V, n# ]7 K: b
9 a! s. g. K' {1 z9 @        if (ret)
& g. c0 _" _- F- K( u4 V
, Q8 u4 B. G8 s8 q* m" G! A1 A                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") n6 V# C# Y) M0 Z
0 F& J* K9 `- \
                                "%d\n", ret);/ {2 x8 P0 k+ k/ G" _5 q4 P, B" h. S

0 n3 Q! F/ N- q6 J! l: V0 ?#endif" o3 c& a: ]% D% u" `/ O6 g
# w' g3 t  b% O2 k5 s* H; m
        ret = platform_device_register(&da850_evm_tl_leds_device);. ^  I0 v! K0 @7 v

6 {. `9 q4 C" R" c3 X5 m! r+ v8 k        if (ret)
7 h3 J- I* g9 y1 o4 q& M
2 h1 |$ G: R) _: \                pr_warning("Could not register som GPIO expander LEDS");
' y! ~; u" S& \* U4 h# l& L9 S1 q1 I
# O% S3 e6 |, {        else
! V$ R) O* `2 i4 b) O. f2 ?, v) ~1 `; n9 ^
                printk(KERN_INFO "LED register sucessful!\n");
6 n1 x, E' G. o
5 d5 W- I. i! e* L7 m  G" d7 i. T+ x2 V8 h( N! s
* `% f8 u9 s( w6 i/ M  L7 x
        return ret;
8 T- a$ w5 @/ t5 R0 R3 t1 |$ m
; p( v# h$ I* X. q! n}- j% R( Z2 k) E/ ^3 z3 j- e! l0 |* L
5 t$ f$ s2 O; `; R; v+ \2 K

/ ], }! D8 S1 O$ c) x) E
! g6 g9 z- b5 M9 F$ b" Z& xstatic void __exit led_platform_exit(void)% o0 o4 ?+ a( I# |9 l" A% O" Q3 y
! q! ]) D* }+ P6 M5 [) s
{
/ o: G& w# Y& [( ^7 f# N! [4 H
; Y) I# i- a8 x5 e5 t; S9 |( D        platform_device_unregister(&da850_evm_tl_leds_device);& S# N' u  {' J
& m% g8 u/ r; @* E4 m6 _+ E
* p8 j/ V; l  h8 `
8 w7 Q1 ~+ A7 r- ?
        printk(KERN_INFO "LED unregister!\n");
6 B. N9 i) o1 r3 u5 ?
8 E& _1 ^: ~% N" {: S/ u}/ n& @5 Y2 {1 W9 _, `3 z1 E& D
, O5 {) T6 i2 ?# u

: T$ y% h$ p" w# k' v; _% q- H& H  r1 T8 E5 t
module_init(led_platform_init);  ^' z7 r# e0 M. c+ k, y( V" a3 ^! O

- p$ l  b. {( M& wmodule_exit(led_platform_exit);# _+ x: p, o, M, _2 P
0 S  s8 y! L0 J- M- A
1 h: R$ W1 _5 r7 O9 q) V6 {1 }

! V' ^7 T3 l) c1 D  ]6 EMODULE_DESCRIPTION("Led platform driver");
7 x% n- e. M" f$ p+ `) q
6 m+ X6 k0 \6 ?1 ?9 a  LMODULE_AUTHOR("Tronlong");  S3 T6 q; j  u0 @
. A( o8 p7 R. j
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
& Z9 j& n. X9 \

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:327 _. A. Q2 ]: v& m( a! F
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。* }0 o6 I  z3 j* a
...
+ A/ i- v, z4 U' z. Z& M
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
6 |( a3 J3 n" xhttp://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-4-26 05:05 , Processed in 0.045629 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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