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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
6 X5 S0 ?/ \7 B8 g
) J: v5 h" l! F请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
+ z; U- B& G3 x1 t; K
5 @' l: I3 d. q  e之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
8 l" a( i# y! i+ b) M# f6 f' R# {. D$ h1 v2 ]

本帖子中包含更多资源

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

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
( M" t( d: |- s3 A0 Y- A- c9 slinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
$ h2 X2 ~* D  W) t3 V+ c0 [
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:1 [5 K. M" }0 t2 [1 _/ v
#include <linux/module.h>
( Z0 S' C2 I; m( M2 d5 e& L5 P
3 q( I* L: M3 s4 [" E#include <linux/kernel.h>+ G& T' k  q- V% G/ B' l
, k- {- o+ W, w) [# Q
#include <linux/types.h>
) ?/ g  k  f1 }! T( X* c
1 |$ Y- v' B9 B- B#include <linux/gpio.h>
0 d! r& l4 X5 @: q# _7 e5 L% q; \* g! s/ B
#include <linux/leds.h>) A. j: ]- C& T5 j

" {$ V0 Y2 x! P* X# n" M#include <linux/platform_device.h>
1 a5 t4 d' s9 r) \5 [  e9 L! S3 b$ [6 u: ?7 `9 e/ V

% F) J3 U7 X4 ]$ {* d2 M: q' k
* K9 ~# c) [, i. g2 W) o#include <asm/mach-types.h>
' s' @% C( I1 T* }- C0 x6 F3 e& |! e9 K' }3 S' ~8 i9 V. [
#include <asm/mach/arch.h>
$ ?% |# g- a  X! @' ?: N  [  h/ ^7 c. g: H* E0 {
#include <mach/da8xx.h>
' y- t5 P. Q3 _7 T0 p  ^! S6 D, p, E5 ~$ c; r2 g
#include <mach/mux.h>
1 r$ q0 M0 H; c4 }0 R/ \; z: S; F8 z, J! [& K: H
! |, i" l' P$ l7 [2 v) p. X

6 y( b4 P0 H+ C9 r  W#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): u, Z7 B' n+ h8 ]
: I/ i1 \8 q  X4 O6 @  A
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# T$ \, Z# X: c" F# Q* S2 \

. V: L4 O( G6 U/ O4 `2 l& f9 }; K  f#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  M! P: ]8 F  p# H  i, W) a8 M1 c
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! y! ?+ F9 u! V% E2 k( j- P+ p& {
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)& C7 R) o9 L% n7 U' ?9 \4 U
& e% V! z: g1 o6 v2 ?" c4 M  [
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)/ x! L4 D- A  @

, _3 W! h: K) J( n+ R4 q
7 W; p; m# E  f# d0 b
6 f: E* u4 l' U2 k/* assign the tl som board LED-GPIOs*/  W9 l' G) Q4 z3 a; M7 H6 {
6 b3 `# b8 x! {" E( [3 r7 g  T1 w
static const short da850_evm_tl_user_led_pins[] = {
  {% R  t0 }" @2 U* z9 u  l$ Z  i7 r4 d, s  [; b/ K' Y
        /* These pins are definition at <mach/mux.h> file */# k7 Z4 q3 X1 W" S; Y) T5 a
0 X0 @3 C% H& Q# H# H& H* b% t
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,) X( c& b7 y. Y
8 o7 l/ S! D' ]# j9 _; i/ }
        -1
& _1 w- P3 S9 \8 `/ i
3 b9 ~$ G1 E% C};: S6 W+ o3 w$ g( k# k! w/ L
" y; Y$ ?5 N7 v/ s
4 z1 U% K0 d0 h3 |
4 c/ ^' y0 E( ]& ^# k9 t
static struct gpio_led da850_evm_tl_leds[] = {. {4 O- S) ?$ A3 E! q# `1 h

0 j5 [* Z$ h' F% ]& i! b        {
3 a& z  Q' G: V4 @& S. n4 G
5 T  E' P& X# i4 n, m5 b                .active_low = 0,& m% j6 Z: |0 Y8 N( @
2 a/ g) d& k5 o
                .gpio = DA850_USER_LED0,, z4 T: @* a3 V

% p+ |4 n3 W, Q1 o                .name = "user_led0",
+ W( W9 q7 z9 }* G) G# J. x0 p( N1 i7 A8 [3 s
                .default_trigger = "default-on",) S% y! o9 \8 X

; n& _" e( W" v2 O3 p' O2 {9 Z8 X" y        },
' D* i6 P4 k7 i4 A  b2 Z: Q3 I
4 z" \7 V, x' h  M  f% _, z        {+ m9 A; u1 V7 O- E' D8 w1 u
; F3 i& Z) b# V# U) b
                .active_low = 0,* q, L5 ]  P$ l

- R& V( @+ C% t8 f  g/ R4 d                .gpio = DA850_USER_LED1,
) T# }+ Q- U1 w$ F3 j7 k: ~
: h( X( I! q: Z  i                .name = "user_led1",. c- x* ~7 K0 g1 \8 P0 k, d! k

  }! X& T5 F2 G3 ]" I8 D7 k0 `                .default_trigger = "default-on",
$ g' i  P6 v% c- Q; m% W/ T6 w# w- ]% l7 A; C
        },
4 L" \' U+ o" l6 b1 r8 X4 Q( P6 d6 Z# ~. o
        {1 b$ x3 e- w" ~% M) i

7 Y2 A7 b5 `" _- I6 l6 p                .active_low = 0,) }5 x6 x' m& A+ u3 X# J2 C

, n4 S. y: Z' A! x+ A: f- ~$ I8 D                .gpio = DA850_USER_LED2,
( D+ g- v& K- _. L8 V; i* }! K- e9 J( h) b
                .name = "user_led2",$ h0 t0 H: t0 C8 A3 a& b
4 ?! E$ A) L7 \+ t
                .default_trigger = "default-on",* w1 h+ _1 f$ `  S, d& k5 }
* Q; N" m$ Y1 a" Z2 u$ k
        },
7 S/ ^& g' u5 u, Z% p; o- ?% Q6 c0 f5 U. J3 {. t4 f2 q
        {- y3 }2 W/ G4 R" q* S* s
" T4 y( S* B# V8 ^$ \$ i- j
                .active_low = 0,
5 K- A( P% @5 k- F$ f2 ^9 D% S) K
9 B" U( @3 M; j; c, I1 m" k                .gpio = DA850_USER_LED3,
8 m/ g; V, M# v: j( o4 m0 _5 W+ C9 P% z9 l* I! w
                .name = "user_led3",: d& z5 h4 b- K" Z1 z
8 n$ @  ~& i' f% c
                .default_trigger = "default-on",
4 i4 N7 E- y& l: r6 W# [* B
$ e5 m6 N) L- G( Z% s        },
! H, F' j. {! I, U- T( y5 B# P( u$ e, a6 m0 X; c( m
        {6 i+ Q4 K/ g) N/ U

: ~4 G4 Y2 z* K1 z                .active_low = 0,
: g6 k: w. h" h4 z# J& w. d& `9 f* v6 W% z  D9 I% j( Y" P
                .gpio = DA850_USER_LED4,
7 w! q# X: s+ d0 ~! [" ]  b% y& D3 b# m' [7 f6 \
                .name = "user_led4",
4 ^% ~0 A% U: m  Y* \' @, U* X; i6 E' ?3 }
                .default_trigger = "default-on",; M" U4 \3 `* X8 j6 z4 Y

9 J# s% Q2 [, U9 d        },
, P' u2 Y- E' m' v7 Z8 h, v: I1 y" G% Y" F5 c0 ]
        {
$ B1 c: V" c( g- Y* m. w& q
, ~! s& t4 P1 O. W8 o                .active_low = 0,
0 x0 v4 {; {; K# U3 U, ]) j. p
6 m$ n' L( n. e6 e                .gpio = DA850_USER_LED5,
0 `. h; s. O6 j
2 l0 U8 ]4 {0 T                .name = "user_led5",
) R5 w1 v4 R2 N# |) Z7 O& m3 d
' j6 h# `4 s8 f( M% N5 \                .default_trigger = "default-on",
( z* A" m* H; d  H5 w/ D0 ~: B# Q3 D( l7 u& I; ]
        },
6 z) j+ f* Z$ w+ g2 E: p; U% \& d2 T9 c" q
};& C# ^2 _# i$ A5 J' q# u7 a
! r( _" H, {' x* H

2 m8 B# s0 _4 h/ V- I5 r" o7 q3 p, ]% f* P8 ^
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- N1 ~7 s8 Y( N/ B- O% W, y$ o0 a* Q) S  d- G) f% L
        .leds = da850_evm_tl_leds,$ _) b. M) f7 ?: o
% U/ q! W& j- p* G: }9 q. I7 n) B
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 h$ \+ Y& b; n. i" {+ U( a
$ i" F( u: G  e1 i};
' B0 }4 }" j: l+ P4 C& _; ]8 R, A5 ]" m& j: D( j
+ y& {& _+ u- q
" T1 q8 s, s  U; G
static void led_dev_release(struct device *dev)5 I4 {" b( h4 B  N5 B( f; g8 c

$ D9 o$ L6 v) p3 B- n/ [+ u{/ d  J; S9 J$ r4 n/ d

+ |5 F( n0 K3 J2 ?& A};
6 Z" b) y3 [+ E4 o- U7 d& g7 ?
# m/ X. \( B6 Y  w! B6 c5 b/ {( [3 \7 _- y" ]* y

- h8 V  Y) R  Y5 Fstatic struct platform_device da850_evm_tl_leds_device = {
0 a4 c" r, ~3 n; G1 e! D% q8 x- F6 c/ n1 V" w- _, Q$ ^
        .name                = "leds-gpio",
' w9 m9 l6 U' l* L8 W" U, y! {8 H" C: `- U9 }1 l6 i
        .id                = 1,
$ o# x+ M1 u: k0 O
5 q) q: @2 }( \: Y+ G        .dev = {, {/ j+ y) }$ S; u3 X

& r) U6 m# |1 v) v+ T9 X                .platform_data = &da850_evm_tl_leds_pdata,
6 t; [: |$ u+ x' Q' L5 P; @" D
                .release = led_dev_release,
( v$ y  C5 i: y  X/ p9 ?4 i) N" V
        }
! G  H9 c  x1 P
" c/ ]; l: j' l0 q3 C- @};
0 b7 _. d6 F& {9 F! {& M/ u& R" S: o

+ A$ Q8 T" R9 e( i/ c  u9 T: ~. T
static int __init led_platform_init(void)' [2 [( C5 S) \& L3 E  V
  I- j* I8 E/ }% k. \& p1 p8 C$ a& w. R
{
/ P6 p8 F( b* @1 ~7 u( z' M9 X
        int ret;
( x6 g/ v3 v% c  K: X% w9 m: R% P/ C2 y
#if 0" [. `4 Z" B8 Z3 @

" x6 ~+ ]' j8 \% D6 ?$ F        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: R- c1 J' T, o, y+ i( _" I" i7 \, _9 q: d. w
        if (ret)
/ ~# V7 N9 H; {+ H( n. Y2 l' E% `  O( @) G5 i
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 p0 \& T( @4 b1 ^
. Q( [7 f/ ~8 C) H  k6 K
                                "%d\n", ret);
2 ]& L; x" Y& m6 ^2 d: i* q' I. z3 k# W0 R: S. l
#endif2 ^% l# Y" U% i9 Y; U7 K8 l
9 T. D& i& d, j5 [
        ret = platform_device_register(&da850_evm_tl_leds_device);& s. i6 K% I: A
( L/ f& r- b: Z/ N0 ~
        if (ret)& a0 b+ o5 c! Z& M  a+ I3 f( ~+ t

( q' m% M( ?7 ^* _2 `                pr_warning("Could not register som GPIO expander LEDS");
  I; C4 y) X  ?# G4 ?# [. F; Z3 _  E! w' H/ F) p1 J# V+ X
        else4 N# l$ g: A, }3 U+ _
' k1 g$ L8 u2 X0 U- z# Z! E6 j
                printk(KERN_INFO "LED register sucessful!\n");
. N- v4 C3 q7 l: z  o. ?, M2 U% N- `/ T9 B! S

# H& m, H  @1 s7 g" q5 l* _: S' i7 A- G; L- O! ~
        return ret;, P, q' N5 Z& a$ t* C) A
% P) O% l: H+ t! a! ]/ l
}0 H: M, _. b0 s- M0 x1 h

- y0 ~7 r8 T& T$ a* y$ T- K
6 V" `+ x5 }; g3 u* u1 Y: C; o7 F" ^# C6 F5 n2 Y
static void __exit led_platform_exit(void)+ ]4 x* J+ u1 V6 }( |- ]# j$ J
5 {3 M& @# S7 e
{
0 w* `- W, ^  B( e( v
# v4 A6 s3 B5 F  i2 Z        platform_device_unregister(&da850_evm_tl_leds_device);) I7 A1 r# A: W% R" E% ^

8 l/ ?- h0 v+ [3 P# d( R7 W' }. J; P" T3 Z& {& w5 x2 X. \. }! L" s

3 H% _* |/ o( ]8 m& f3 R        printk(KERN_INFO "LED unregister!\n");) g4 B7 g  u! b

+ I1 |- J" q8 t8 R  D8 a) w}
- q7 Q- J  o& E
+ V3 k2 [6 r6 T/ \6 Y4 u2 o
) A) {4 m4 c3 p- C! M! t7 c: W
$ v, E' m6 X) S% Xmodule_init(led_platform_init);
7 C3 ?7 @7 T6 Q8 j
, k, T5 y  U7 D0 u$ N3 {) D5 W6 o2 rmodule_exit(led_platform_exit);
" Z2 b- V" g  p  P
3 j' o; `& p4 O# W4 ^3 z; A1 b8 A! b2 w' Z- E* T
2 `- w! B% S3 q
MODULE_DESCRIPTION("Led platform driver");
: G. m4 R% B( n# I+ h  m- [2 O3 e
  }( A5 ^3 b: r7 [0 i2 d& AMODULE_AUTHOR("Tronlong");* O' k8 R. o/ d" ]" s+ v! Z
6 m* ?  h! k* |% m
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。4 ~/ H: u( u: U6 I" o$ b+ R8 }* l

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
8 ~; C6 S0 e9 i0 {: }您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
$ d) h9 R/ B' x' [' n! o ...

* a1 m6 S/ ?! P% D8 J好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
1 u  y8 d  W0 h7 {  ahttp://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-28 19:15 , Processed in 0.044314 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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