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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 1 E* A" }! J1 x9 ^# ]4 F1 {. @- }7 |# B
7 P0 D4 o- a7 }: |; Q; a
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的* E1 Q7 R6 A9 d9 n

$ F5 Q% f: r  Q. ]- i/ F之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?0 u2 w. ~5 M- U; S, v( _: ^
) [/ S: i: G6 q' P" P

本帖子中包含更多资源

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

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:147 I! \* J  y' H* L1 F6 P9 w
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
3 G; v4 W  |8 ?9 t
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
, P) {4 n" x# y, D8 V% j#include <linux/module.h>
* {6 T* s$ F6 T- c* F1 x5 j6 H& E8 k' ?1 h7 g) r: N# q  L% M
#include <linux/kernel.h>
4 ?( F# p; J  g, ]6 v- P! l
1 G- q# W, t' e; f3 B- v1 U2 W0 R#include <linux/types.h>
! Y$ l: H( q4 M7 u- H
  i7 c( ]0 D, e2 z#include <linux/gpio.h>
2 _; ]0 L8 B$ Z
. X5 s5 I7 O+ |" F$ O" _#include <linux/leds.h>
. ^" j, W  ]4 Y. t4 Q# {% R* R+ n
/ A1 e8 x0 {" o; G5 d#include <linux/platform_device.h>2 A( j% d% H4 t; [3 N" R

  K/ D8 P. J4 @+ @5 `
4 X: ~0 `7 K$ S- I' b$ X" S* M) [9 J/ L5 {
#include <asm/mach-types.h>5 R& r8 g7 }# n3 o( @

: e. a* p, {) N1 v# X#include <asm/mach/arch.h>
$ {; y$ M# h) k+ |+ b2 c: W# X3 _0 M/ e7 i2 z
#include <mach/da8xx.h>
' i& D9 [7 q2 ?6 v* _  l) g2 `) M/ I: l) N* K
#include <mach/mux.h>
! }( d2 c- r3 P# J: A' h2 d- N! i" J! t( J" {8 x3 W

% i+ }3 P- y8 I  D0 Y: p$ g& [& V3 \: V( q5 i
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 e- C5 H  Q/ L2 B* e8 a

& u( d; m* b' I; m+ u" q; d; @#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' x, G  `0 o. d$ g

2 P: B1 x. v, ]% N#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, G+ @& S( n: \8 N0 y7 b9 u' D9 w* u9 h
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, p) Z2 U" T, v7 K
$ \* U6 O& L, }, v#define DA850_USER_LED4 GPIO_TO_PIN(6,12)5 e, w' q; ~& I" Z+ e1 q
; a  Q& A- ]6 _1 X' s0 O2 {8 L
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)/ {1 H. h. L$ x7 F% M3 N7 A) D) D; H

9 f  ~& P* [7 h5 U) u& T6 ?1 x2 l
7 a1 [! n2 O9 Y9 A
7 ]% o( i  q  {/* assign the tl som board LED-GPIOs*/7 E0 H7 |2 p/ ~5 ]* e
' W" ]) k3 [8 W
static const short da850_evm_tl_user_led_pins[] = {. ~& g4 J2 J" U( t

. I' s! u! m# T7 h# ]        /* These pins are definition at <mach/mux.h> file */9 h' r7 P- O6 N( s1 e

/ ]/ F3 S; o) y+ c. S/ V8 h1 r        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
# h$ S/ r+ p1 T6 E6 E, {  {& b: h" j# L: o& E5 z# |3 ~0 v3 g
        -1
8 E* u- o" `# t! @3 H
6 f( E& X* o5 x+ z0 I  v};; }, M$ ~. {1 x

+ s5 E: `. T& ~( |+ Q- ]( |
$ n+ l& {6 F' f  t$ U& B5 S, U$ w/ K3 ^" ?1 f9 p; F
static struct gpio_led da850_evm_tl_leds[] = {; ^" g) J6 |2 P& \- ]
, D& A  @/ }  a$ e; c) t8 }
        {
: r* C4 s- |; K- i0 L
% z% }/ a, l8 G, }. N6 R                .active_low = 0,
$ _2 n9 t) J& ?; Y* l% I
5 u- E3 N! ?4 @7 z3 Q6 \4 M                .gpio = DA850_USER_LED0,
  ?8 V$ Z4 v' ?* q, X9 Q# z, W; ^2 F2 ^1 x) _; [
                .name = "user_led0",
' G4 N4 e8 }! |- _$ _3 _1 ^- j: F% `* L2 W8 {2 e
                .default_trigger = "default-on",( w1 h* @8 d) }* m6 J' F" g. Z. S  A

3 B+ t# c+ _& g5 |8 F5 o, i        },
" Y2 M8 I( _  Z$ C1 ~+ F  V/ r
4 m% O/ ^6 T0 F4 J        {* }% R2 _: f; m, ]9 a& G( r' C
) x/ H1 `- J' S0 I0 x' t7 ~
                .active_low = 0," f9 S; Y  e: M& h3 X5 l
: |1 `% S3 _+ u& a& R* g
                .gpio = DA850_USER_LED1,: x& ?  g- ?" T5 F7 W
2 {% b( A& [( P3 W* G% m! J7 C9 G: d
                .name = "user_led1",
9 q2 n  n3 E; u) p% }1 E2 c' p, e- c' [, X
                .default_trigger = "default-on",& \+ Y3 c- v  O3 X
! ]; N! k5 N0 l4 Q
        },
4 m- B. S' Y' h' o
2 B  C, f9 n9 _  e6 \7 N        {
6 d& J  D+ t: n( z' g5 v7 H4 x$ x: w5 f% s; B% T: S
                .active_low = 0,( U' K5 J0 R. m: q. f" N
" F; F2 P1 i, q$ j  F
                .gpio = DA850_USER_LED2,5 B1 I% s& e# Q6 {+ V' o
+ Y  M7 E& f. C# ]+ U( d6 k
                .name = "user_led2",
3 w6 u" I% `6 K- j, @, [! l% W2 J/ L7 r+ O2 M: r- i
                .default_trigger = "default-on",
: ?, E7 t7 v, n" P& h5 F9 I! W1 J6 q$ \
        },8 l7 q1 d6 l' x+ w+ S
% _/ A1 V! N" O# X; D- j
        {
0 m. r; N$ F2 i) S% O
, @$ L3 H- }3 _, r6 C                .active_low = 0,9 d2 p1 z$ d- l6 X5 Q& c3 ?
6 w( J% A& q: C/ |* A' z
                .gpio = DA850_USER_LED3,: P" i2 I: n3 g/ I0 I6 I
, n! x& H; ?( f
                .name = "user_led3",+ w& o  T& I7 A$ n" ^2 m
/ J  U6 `5 r& h1 w7 ?  C, T
                .default_trigger = "default-on",
% V- j* \" D- u: ^; G
( ]; Y8 W4 Z3 q: |% ]# \  g        },
7 {5 u6 [2 {9 g( `4 n1 T1 Z4 d5 s
        {
  G$ ]. Y1 }( }2 O# i- T$ u/ Y
* {5 ]  y+ L6 b9 C- C& k# a$ y) r                .active_low = 0,
3 c" v0 p' x1 d5 K+ ~& |# a8 D8 v6 U6 w8 ~; O
                .gpio = DA850_USER_LED4,
6 v- z- _0 C/ N( T# N1 r/ k7 ~9 e4 y" y5 ^. W; {
                .name = "user_led4",
; k& u3 @& |( N, ^$ `6 _
: P" s0 @6 K6 E                .default_trigger = "default-on",
+ w  J& _9 m# P* q! f. P6 n/ e! d
        },
* b# i; q$ H1 A
' h. y9 i" u2 G4 K# K, ?! \        {. J& |; f1 Y" j) T
9 i  b4 A9 Q% d: U, m6 d
                .active_low = 0,
- f- ], A# L3 I* \# [$ U$ }6 [4 Q* x3 v! }. ?$ p; w' @: z. J) W
                .gpio = DA850_USER_LED5,* `% q8 {5 i. `, h

9 A2 C3 K, a% z* ]' k                .name = "user_led5",, v  A/ ~2 k7 ]! \3 \

* }9 S& O! w5 m: h$ N* B                .default_trigger = "default-on",) p3 u) [# E$ s2 f+ v5 {
; H6 Z4 ?/ H! ?2 s4 ~$ I( i5 k3 C
        },
  r" ?! ]$ b( U( A; c, {
- c' M) p% z$ K% T9 g+ p};
; d, O6 r8 L: z0 I: ?3 o) b0 K: J4 \4 `
2 y6 D% f; a& {0 b* t+ J$ J
5 B- D! ^7 A+ g% E8 x8 i1 N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ D, @, ]9 x- x, _7 L

( b) V! `( g% i" r- U- S1 r        .leds = da850_evm_tl_leds,
* B  N8 J7 |8 y. i: u( K% Z% ^! v& n4 L
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  y2 X5 \* h2 T3 }- {0 U

! l, m% P' g; c6 }. ?. R+ X};
$ m* E! A5 ?: l. |& w& b/ B
! C) V$ F4 L  M' l* M6 L$ V& v- y; K

4 J! ~. G6 [) b9 \; `  n& y: Mstatic void led_dev_release(struct device *dev)
- y/ t4 v% H1 M$ Q7 M8 |; b+ c  ?# m% M) n& x2 Y6 A
{
2 E0 p* y' R$ h- H9 }  V( s$ Z/ d* K: p2 T9 N3 B/ G) v" e' |
};2 l* M1 g" I' i$ _

% U' W. i! @/ R* K0 C; Y  n8 w- m% y) f

5 E, N+ Z" r7 S$ O# R9 o7 Y" Mstatic struct platform_device da850_evm_tl_leds_device = {
7 J6 Z( Y4 c! I% r: W8 b% V% [5 G4 K2 Q3 a8 I5 X8 S
        .name                = "leds-gpio",. Q5 J& W0 D2 C0 [5 z6 s8 t

8 u3 `5 c3 m% _# C( }        .id                = 1,6 X' Y, P# H4 N6 K5 l. l" e

) S+ {& P1 v0 ]- t. q; z        .dev = {
9 `9 }, \: [' F% }. }2 u8 a& A! D: ?5 M$ u
                .platform_data = &da850_evm_tl_leds_pdata,( N* l4 @: X: P7 m0 f' {/ Z

3 Z8 s5 _. Q" P3 v8 i6 z                .release = led_dev_release,* i7 ?) y+ G  }( J3 e; L) S( K
5 }* X% e- k! _% D
        }
+ n+ K2 ~* Z0 Y$ B+ Y4 D' ]9 C: j
! Y) Q3 B0 c" L};
; J, C& f! p6 c3 x8 T
+ z0 f$ i( e) d  j" E5 X0 n
5 \, M# g. H& e! I, I( C) N, q# k8 u8 z$ f
static int __init led_platform_init(void)' g' n1 `; K7 X) b
* A4 T$ w+ E1 h' c- B
{
  M+ ~" t6 ^6 h% R6 h( ]. s
8 C7 w' Z* t+ ?; X" V- Z/ G$ j  j        int ret;
; d) n# |6 _" Z* Y( v' ]5 a
4 E0 h* l% q/ ?# U: |* R6 V% l#if 0- V/ Y5 ^% d3 \7 A4 X% K6 y# J
& {6 I1 v8 c; J  q; {3 b
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 {0 Q) i7 Q# M( x$ B7 r- Y
0 G% v. o- a7 I        if (ret)* t2 ~" E: j8 [9 t& e' U
% y* Z5 U1 O' k1 t$ {
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 ^+ h7 Q- B$ W1 F9 p
6 S7 `/ r& j* X  B; L8 n0 f- ~- g9 }                                "%d\n", ret);
  O3 `" v# S/ Y) S3 t2 A0 o  _4 @% @0 A& G- k9 c8 ^6 ?
#endif3 V( M/ @5 R& ~; h- H! L. L

5 n% J! W5 C# [" ]        ret = platform_device_register(&da850_evm_tl_leds_device);
: S6 \" ]6 _2 n" G
! `' e; P+ d- j+ d        if (ret)
/ M8 U" u" q9 M" L4 L" w+ G$ U! Q' K& P, [; A
                pr_warning("Could not register som GPIO expander LEDS");" Y' }; e& f& y/ j2 y+ q
8 q/ Y4 S* n8 t: L5 [& C
        else
) q' y1 h5 \3 w' d0 O, N
# X, r& {! _7 B2 \! p: N1 @                printk(KERN_INFO "LED register sucessful!\n");! J$ q: Z8 l  ~6 M6 e

* l1 ~2 K' ]0 S$ c) w/ w' Y
" y+ m9 J) t$ Z& S
+ X& R0 q$ D$ m% J! u* f        return ret;
1 |/ d  J5 G9 b. x. `" U+ ?9 X
}
% a) j: q. y, k/ t2 V
$ i! N3 x0 w, B* n
- B1 ?8 G7 q; w; d: n& k; ]; a, X
5 Z  l6 R- c' @6 m" \6 T2 \) Y/ o! istatic void __exit led_platform_exit(void)8 n# `; p! M3 v/ G

/ U" w* |' ~- b+ f( W8 g7 e{( S7 M( t5 D& P  q) }% y' h; q
/ j" o. S" j9 W2 J
        platform_device_unregister(&da850_evm_tl_leds_device);
" o; `* ?; A- T0 a
: V! k# h1 ^/ R3 w! _+ K1 L1 K

7 Y7 F# [; q, |        printk(KERN_INFO "LED unregister!\n");
2 |/ K2 B( ^! ^
2 E7 m9 W+ ]( i7 k5 M5 L$ K& }5 @}
' S* ?$ U" J  V8 l7 a/ E
! l: x0 I% |: |9 \
; D, ~0 n4 ~+ d% ]5 {$ p4 v! Q" v& r% h
0 f8 S. d" }2 G  L" o0 {, ^module_init(led_platform_init);
; z+ d# w' T: P! ?. I+ t3 b1 A7 Y5 G" D0 R7 r& A! L
module_exit(led_platform_exit);
8 ^! q8 H6 o1 T8 {5 |5 b% e
' I9 J, f1 f5 C) ?1 t! {) Z7 V0 B+ d% ?2 u/ G: S3 E

: t* a4 [# L: o4 m. j5 _MODULE_DESCRIPTION("Led platform driver");# S7 q9 p" g) P1 h5 h/ L
' N- i$ E7 j: T( r  P6 ]9 `4 |4 h
MODULE_AUTHOR("Tronlong");
  E( Q2 @! `% }; r( K& O  Y: a* H* ^* ~) f
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
2 ]8 f0 F+ @, y' F$ Y8 C) E& F9 E

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
- m4 M6 ~9 L1 X! |您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。# ~5 L* D5 a, o
...
9 M4 B" x3 t! x4 x5 ?& L
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
) t: ~) Z- h: h/ A" W; f9 ghttp://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-7 09:28 , Processed in 0.043966 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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