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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
# Y( Q' n! _& _5 Q1 T  Z$ M* S+ ]! Y2 S# B
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的: v6 t' }$ A( K# L% Q

/ Y+ ?9 c  j+ l( @) `3 W% A之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?5 @! I) M4 l  I5 f# S1 [

4 j4 i1 m0 U+ V4 X! C

本帖子中包含更多资源

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

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:143 ?3 T: y2 @2 `9 Z+ O* g: x
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
, Q1 Q: P$ e1 L  o
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
) L; O0 R( @2 k' }# n# r#include <linux/module.h>8 k& M7 `+ K! j" p. }
# |& n9 H4 u* [. ?/ _6 b9 _' ^1 n
#include <linux/kernel.h>
5 E- I8 f2 D) _* _* V5 J
4 v; t! |$ s% A5 v$ {#include <linux/types.h>
9 d- t, ?4 g; s/ p3 G- f  N9 J3 z: w7 G
#include <linux/gpio.h>6 [) M+ T+ K/ V, T  c, n. y. {9 n

* J4 i: p% _* C4 D* m#include <linux/leds.h>
4 F4 f& j, _7 W( s/ |. q4 I
8 @/ N# }* Z$ D* k& V" o#include <linux/platform_device.h>" w% }1 K* E; W0 n

- I( Q0 U5 c. s1 u/ F5 i5 U6 r. Q; ~. {- ~

+ \, z4 A* Y9 T! j1 D+ B+ a; l* w#include <asm/mach-types.h>
8 N# U. x& I* Y$ ^0 p8 {! w
+ R5 \  W4 ?5 D- v7 b3 X" i6 f2 |#include <asm/mach/arch.h>$ g  [+ t: ^/ h6 K

) e1 T9 O9 z7 O. u2 o8 u( m3 _#include <mach/da8xx.h>
, v& U+ d$ u/ I: }( C2 x; q1 c( v' j4 \- Z$ P
#include <mach/mux.h>9 _1 r7 W: j6 V) p5 U9 ?* c
0 n4 d2 R/ q9 b7 g

( x  S# j% M; |
! c" P" s- t) m: w5 R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- O( R: [" q" N) B$ `/ N. S5 \  K/ [* x7 \3 i5 x
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 V! C7 O5 f3 z" e
9 `$ Q5 w9 r& ?4 O& P
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 |  b% r/ N, q

. ]( R3 _& u9 t! ?#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 ?( Z+ y2 x+ d, t) i$ }4 {

  i" w9 j* I' |4 l8 \#define DA850_USER_LED4 GPIO_TO_PIN(6,12)2 ?% T6 p* f/ L! L0 }% e

: E- E9 J" @% f! P/ t#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
& Y) r0 V& f. L+ v
! A6 I9 ]- D% s# k* A
, h) \3 T7 U' O: B7 D2 j  R/ c
/* assign the tl som board LED-GPIOs*/) i& X( V& d' a, O; _7 Z% K! ]2 o1 ^
" z1 C! I4 S( s
static const short da850_evm_tl_user_led_pins[] = {
. `# F2 ]$ t2 K0 i
# t2 P4 b& J) x9 F- f1 C! {* _        /* These pins are definition at <mach/mux.h> file */
& J! K9 o. \: |: h
; e: |0 l4 [2 Z. V, r5 n        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,. V. F  W/ p2 o$ o

) j- k" e9 d2 W+ y; \  g( G        -1) {3 b9 H7 j) z0 A$ \9 p/ @4 U

' \) t* w4 T% w) U+ J2 u};+ k" S" E4 P* T! c0 {6 ^
7 j: n' e0 y2 u, H) @( Q* [: |( z
. O- W5 G) _; b3 C7 q! d4 C
- [9 B9 U0 y& V2 \/ v6 e$ G
static struct gpio_led da850_evm_tl_leds[] = {
# m' C" x* ^' b7 o6 I2 c0 r( K$ m% f# n' c+ v; P9 Q9 {# I  ^
        {
- G  {" @( J, D6 C- `: P" \
# u, [, q$ O. N6 H' A: r  D- W                .active_low = 0,7 a! l8 _" p8 E1 a, d
1 C! d1 U% R' f# Q: r+ C- i1 n
                .gpio = DA850_USER_LED0,9 r4 k) r3 o0 _
' l2 r3 l) X$ h
                .name = "user_led0",- `5 u/ e( V- X3 O# Q

5 `' ]. l: E& |% l0 V3 V                .default_trigger = "default-on",
% ?  O: U) P5 l! q/ N. z$ T+ o  n8 _& a# n8 x9 v7 q/ b
        },3 E% u) T! @9 c2 s% S

+ L; R- ~9 U- v# u        {" A: z& G: Y$ A6 I; |

. L7 V7 n9 |0 e- E2 z* g! D9 j: x                .active_low = 0,5 w; K0 O/ J5 w' o' a9 X4 p
8 D+ d& C# ~' o: c
                .gpio = DA850_USER_LED1,- `: O- v* K4 E' {) J' {

/ C: ]! ~9 e7 C                .name = "user_led1",% }/ `8 d) t0 A' G! v. s# V
$ V* O4 M- y& a5 P( S. d. t
                .default_trigger = "default-on",# Y1 p8 [+ c) F: V5 [& |# m, C
9 x" l" F4 C' Z+ {3 g) n( @
        },
" Z& R! E; P0 o$ j6 K
% }  c5 {" k( [: ^" \: n        {
9 G9 I& y" K% K4 ^5 c4 C) K8 Z
' ?5 d- Q$ _& P% s  g0 \                .active_low = 0,
3 r% c: F2 z) L3 u4 A% `4 a7 Z+ G/ _  F+ W9 V3 h# B) P
                .gpio = DA850_USER_LED2,
( ~% l6 M5 g: k4 [- p* z7 Y
# L# m) ?2 z- I* _0 H: ]                .name = "user_led2",
; @! ?+ {/ c) S! x+ o1 N3 V# d  L0 [- N: g: X- d# L4 O8 K3 m
                .default_trigger = "default-on",
! \/ f  S$ H' N# Y% x# C+ [
. [, p, l2 [1 _! D$ E1 m        },
- k1 B3 n# a; h$ b9 ~7 I5 |' B! \
+ H7 K& l( \  l. U( d! X2 x$ Q        {3 S/ r+ x6 t5 @% y: G% o2 q

* _2 w/ M) ~+ B- B9 ~& S                .active_low = 0,
$ l! X+ b/ x* ^( B) Y3 \; R- Y! W2 p( w0 x
                .gpio = DA850_USER_LED3,/ o9 Y9 W  B$ C
( E( Q0 B! z' C! ^
                .name = "user_led3",
' I9 q- B+ u& w+ x; l- |1 r
0 I* b% {4 k; h% X$ b                .default_trigger = "default-on",: b9 }/ u4 Z$ m9 q' m" i% Q
8 z0 i* b$ a" w0 t
        },
, |$ [, X5 e! `1 _1 y2 m. b
. H1 w0 `; j- U: W        {
$ ?' j1 h5 v1 |  X& w5 W( X2 c' c! l3 d# L) I
                .active_low = 0,; D2 \! L' M1 s! t9 {3 A

- o# ^9 M# P  r                .gpio = DA850_USER_LED4,
8 a, x% W7 `2 Q% E: u; _& ~
7 Z2 s& ]/ k' F& f: F, d                .name = "user_led4",4 w- `2 i4 a% i. G0 Z5 P1 y
+ f+ U# e+ K8 f  Z1 h
                .default_trigger = "default-on",7 b5 V0 s) s' e! s& k' L
% Y9 Q% H& J" M; d+ `+ h
        },
1 U: X/ e9 D- z, o9 d
4 P0 G6 C4 }+ ]$ T        {* A+ M* s1 E3 {# f$ i4 r& V. Y7 `7 e% d
& |2 J7 l1 C$ w9 G: P" B
                .active_low = 0,
5 `$ c& `/ S3 T+ N- b, u$ Q8 C6 ]5 _3 Q: K, S# l7 T# B7 }) n
                .gpio = DA850_USER_LED5,. t. D: {6 E' s/ J' }; P

" ?6 v2 v; r! Z+ w* [' M5 ~9 q                .name = "user_led5",6 T. O) |" A. t7 R" r# j7 r- N4 i  j

* f7 n" V) b, s5 y                .default_trigger = "default-on",
* l/ Q  F* p1 U  w0 M
; s/ P) i6 i2 O" b        },
2 l- x% Z2 g2 `* D$ J& E$ |- s  Y( s: y8 q2 a" {* C  H
};$ l8 Z4 R1 ^3 i5 R  b6 ~; Z4 `

: b5 h3 U1 \* j1 C) N" A: O8 |" @; g6 E+ s! {
% R3 t6 k4 m6 s+ }% n0 v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. y6 \  `7 `6 s8 {0 w
6 m6 ~! P9 O. A- ~; N: I* N# k- [
        .leds = da850_evm_tl_leds,
9 o1 ]4 [/ u1 A
! o3 ?# V- x. ^, [! R1 m        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: [5 n2 n. A; C9 w
6 |- W% T/ y; r, c1 e! h+ b
};
5 c4 g$ B% f2 b/ ]& S9 d* m7 n  u/ Q1 j+ S- s. p8 S2 A) d

. {* X! V8 y4 w1 @8 B: H4 j# c5 q- j; R
static void led_dev_release(struct device *dev)) ]9 q( o  O0 V$ @1 a1 K
6 |* h8 m  a3 m
{
$ w7 i2 \7 w" {
; B% S) k& O% O8 _};
( {* r, h+ |; n. w  @* g( l# v7 N! J$ t7 j) c
2 T3 O4 E" C% L- |" I& \

1 o4 K" V7 Z/ W4 s3 t. xstatic struct platform_device da850_evm_tl_leds_device = {' f8 Y" j/ p. e/ }$ r" i9 J

7 f' ]5 Z0 Y3 T% j6 l        .name                = "leds-gpio",
' x: p7 X% t: J% ?( ~, W1 x: t
: k/ L! ?: [# t8 z  b/ w/ ~        .id                = 1,
7 @5 B+ \, K3 j7 v
7 C& m9 w3 f( h% p  s        .dev = {5 b* _* g, H/ L. [4 ?
6 H1 q. b, _" j2 x
                .platform_data = &da850_evm_tl_leds_pdata,5 Y  `3 P0 A9 `7 P/ P
+ @6 z% R0 i$ j' l& T
                .release = led_dev_release,# q7 o, J% K( x/ C1 E
3 {" ^, r+ T- `! W- o
        }
2 P8 j- a9 g, x0 i
) h1 E! [% N) Q: B2 S% z. X( t};" o8 E& N9 r/ ?- ?* Z/ |9 k
4 @- F3 b7 k# v5 ?+ T( I( m- m9 ?

, [8 G" z, P5 D; L( O/ @$ c, H
8 T7 O+ T7 p, ]& N: ~" fstatic int __init led_platform_init(void)7 j+ E* m( H: ?8 o$ Z! ~3 C! o
/ R% b# y0 v& \" m
{" d0 ~8 [) @, s% u% F4 o, Q
9 r; ^; T0 m6 B5 s' V
        int ret;. l4 f8 |. d! c& Y( A0 ^6 Y3 W: B

* h* k4 [0 [9 v3 K+ P#if 08 }5 N) r7 w7 ^- N

9 P, s6 e: }9 @8 l3 L7 O        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# G$ i. ]2 t2 Y, c
, I. h9 ~5 G8 @! i) V3 S& k+ |
        if (ret). X( V9 @3 r' l' U+ ]! h

6 i8 s( o5 R& |' A- O5 }" p                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% i6 ^8 C: C" `6 x8 z8 g3 ^
2 ]& R/ ]8 ~0 A% k: f2 a4 x. v                                "%d\n", ret);7 i! R. y' z) i/ Y7 C( y8 x9 w

% \4 y' `  b: Z- `! ]#endif; b* y. D- Z1 ?9 w( N3 k1 E+ {

- o. Z0 S, p7 x        ret = platform_device_register(&da850_evm_tl_leds_device);
" U" m$ W- S- F  ?  Y2 e: b  z, f) x8 X, ~. \) ?
        if (ret)
' U9 R. r& G0 L! Y2 @3 h% Y: m, T+ L$ `2 L
                pr_warning("Could not register som GPIO expander LEDS");! [$ U1 {7 K& S# a
0 }  S* C: F; }/ o# q6 h
        else
. Q0 x! a% Y* A9 Y9 Y0 {/ Z# @( g+ O8 n! Q. T$ _
                printk(KERN_INFO "LED register sucessful!\n");1 |) L1 T, Q* s9 j1 M

1 I0 x$ K  @2 A" m, _9 L
0 N. {: ~0 Y2 T9 h6 R9 y) m& O( D0 u& t& }! ~1 O
        return ret;
, h/ k/ I+ s. k" v" ?  _4 z5 V% |' F
}0 F4 T0 v/ Q4 J3 a3 T( @* y3 P

) P; s; b2 E; D( ~, D" x" @* K2 ~$ k. U0 s2 V7 n! C$ t

  {; Z: r4 ~3 p: A! ~! J( K, Xstatic void __exit led_platform_exit(void)
2 a" V6 ?  P% K) _9 [
; p" B* y4 U! p3 o6 Q0 u{8 m7 |+ Z- f% k" Z
# X( m3 q8 g' m; E& v
        platform_device_unregister(&da850_evm_tl_leds_device);
: h4 b9 Y  Q$ h" b! K5 k; S! H2 b( X
! T- ~3 l/ Y* [, i: T& S7 ^( l% |; a3 a5 f
7 {) z7 _( j$ \( [& ]  {
        printk(KERN_INFO "LED unregister!\n");
! p" R/ V  }/ ~6 Z' _- b! Z$ k3 A7 `/ Q
}) ~1 _) b% L' D* R" T

* P. n1 s/ ?# [0 ~4 T) X3 ~+ y$ g& J; K4 s( F6 t# P$ T
8 a; X3 }5 z% Z; f% E6 Q
module_init(led_platform_init);: a$ I1 h6 c) M$ x- A) N/ D8 }4 M" Z
& j5 j% k* r5 G4 \/ W6 l
module_exit(led_platform_exit);. L  k. @/ V2 d) O% W+ Z6 H6 J
7 [: |# P1 [# V$ q' J+ R

  q5 }& G6 \+ A3 ?- l+ l+ r  g  D7 Z
MODULE_DESCRIPTION("Led platform driver");' U! D0 l% W; e9 j( Q1 U, {& w

' @5 ]7 X* _/ V2 a% r- ?- fMODULE_AUTHOR("Tronlong");
% O. m" b9 v1 H& U
9 C1 `* l$ `1 K6 eMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
7 j( I  F' J& n7 {3 }

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32' n) s: ]+ c5 y( D
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
( c' b: O3 W, r0 p" i# C# f ...
$ f! J' y+ b  |' H7 d/ J' d) \
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
5 Q2 K1 b8 {& A7 Jhttp://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-6-15 10:57 , Processed in 0.043683 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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