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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
. C* h% s$ {6 f- q& Z3 Q0 H: O" I( l, ~; u
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
1 t" u9 u+ C2 _- T) @5 m3 }
+ o1 U: [7 O! F+ z" Z3 k1 R之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?. w' a, Y4 a4 w' O) L3 n
% R8 ]6 N: t/ A' W/ A

本帖子中包含更多资源

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

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  u# l. R, J8 ?: a
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

2 B! S+ ]1 l0 M0 p7 _我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:( m4 ~' W  W9 h+ y  d+ ~
#include <linux/module.h>
+ W: t8 I8 F2 [1 J- K& V# k/ q
; J; X$ b( r- G#include <linux/kernel.h>
( `. u5 P! A3 g
, q. D* J7 b* n7 D  ^$ ?7 i1 D* B#include <linux/types.h>
- ^* v. h6 B. i5 L1 l6 {' K4 u8 p: x
#include <linux/gpio.h>/ N' c! p- p+ H7 ]2 A
, E6 c: n8 r" q+ N4 y$ J/ X
#include <linux/leds.h>
& Q% f. \0 ?6 Q$ x0 Q
+ e8 {8 p: U4 i/ y# \9 j# n#include <linux/platform_device.h>+ `+ Q6 C$ f0 _8 N/ _

, D! u# d5 I6 x
: P2 O2 B3 M( u# x% z# s3 ~' T/ f8 S  T# W" [; L# R
#include <asm/mach-types.h>$ l2 `7 ^4 Y8 q7 W# M% Z
4 e9 x: @# ?3 v  ]7 i
#include <asm/mach/arch.h>8 L" p* K% F  J/ M! y

( d5 }" t8 C1 \; E3 {' X#include <mach/da8xx.h>% g& I, U, ]9 j; y8 Q( c

. o2 g; h1 q9 {9 @' ]# ]#include <mach/mux.h>
' m+ `5 T3 `- ^; F! f6 _  q4 c$ m0 O
) |4 p3 k8 o! j  l7 L% A+ n/ e  U" U% A% p2 ^3 |
1 |5 t0 f& m# D, d! V
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ F- _0 E4 r2 g' P* @. ?( p: o4 }2 D* T- Q$ }
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  Z' p8 w, s1 e) _, Q- w; [& }: O8 F$ Q1 G5 F) f
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 K* d. p" K5 W; c. O/ o
2 R6 E# l- T* [6 F& \7 ~3 J3 o" f#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), c, S# c4 [& X% X; s; I' R

9 U9 s; c4 p- L8 V7 d& }- I4 F" c#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
! B2 c8 R' G8 a) T
  @+ d. A) g" p& q; n0 `5 a7 f- L#define DA850_USER_LED5 GPIO_TO_PIN(6,13)9 J* [' j( d" v
4 c& ~1 C/ ^2 `
0 s1 U) u* S: d7 \

* S& d  I9 l. I7 T( J; N, |/* assign the tl som board LED-GPIOs*/
2 X9 i4 c3 v& M% J" D. t* @5 F: h7 W! N# h9 q! g
static const short da850_evm_tl_user_led_pins[] = {
$ R+ |! X1 ?4 C0 K
- l/ {7 r9 \' i* \# }6 d1 L( c; f- i! T        /* These pins are definition at <mach/mux.h> file */$ v1 G3 F/ V0 R" B7 z

! n/ z9 T0 M! ?: I- [' k2 D6 Y        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,% A) r  ?7 F) C3 l
" }4 \2 v5 V3 c9 `( [$ g! Z
        -1; a/ O9 J' N' F8 I5 c7 `5 u

9 D2 Z4 s$ W" \/ p};
5 ^* K, C; d+ @, ?0 O9 K8 p; e0 h: F7 t
3 l& G/ {7 ^9 e4 y

' s; Q, }* ~7 u  rstatic struct gpio_led da850_evm_tl_leds[] = {
; `" N& s4 ]7 L! @2 T' z( l) N9 O- Y; |& S8 {. T
        {
7 G1 R1 h4 ]1 L
1 F( T# P8 m+ Z4 _. o                .active_low = 0,
7 {  X; J% J% h1 Z5 K* Y
( d2 }$ _4 C7 M  [                .gpio = DA850_USER_LED0,: U8 H. Z( E7 i( k

: }8 ]" S7 b: n/ ^- L                .name = "user_led0",
( ^: N" Q2 M) H$ m/ s' f
2 |) ~0 _8 z4 @1 C* W" U                .default_trigger = "default-on",6 V2 @& V6 D! O' H" y- ?- _
! @5 r7 V4 @8 N$ O" L, O/ y3 e
        },
$ T: A' a: S( H9 d+ B8 r8 a5 a+ D" {8 T0 h, T  K
        {
0 E7 E, l* f0 E$ C7 ~1 t  p: t; C9 n) c' n4 p+ ^% d: E  w2 c
                .active_low = 0,
# ~- O, }7 ~6 }8 b: M- R
2 w( h2 n  ^, B( b                .gpio = DA850_USER_LED1,
( p6 O) I0 {) l' N& t+ X& |7 I7 R: D0 W- S
                .name = "user_led1",5 q, u' b( N) C1 D2 U6 r- T
2 L4 }3 C- L' Z. r
                .default_trigger = "default-on",9 O3 M8 x8 r6 ?& f3 L; G

- D7 q6 Q4 [4 d  O7 u, O3 O) T        },/ f6 c6 n% x; \0 b$ ^- S
2 @5 c# h8 z# g# V9 H! H9 S4 T
        {
9 I. C3 F1 i; K4 C% D) Q; Y, p8 F& f1 U
                .active_low = 0,
3 ?; D+ q2 m# j- T, E6 G! {0 T* r( M9 n, s
                .gpio = DA850_USER_LED2,
+ G; |" e  M; d& H4 q& c* e% s
, v, J8 W" n2 N- B                .name = "user_led2",
" J, u' H# c0 M% U
7 Y- r, O3 R0 d3 x0 v- y                .default_trigger = "default-on",' C: d& R. O# H- v7 U
  H. i3 R6 o: [8 j
        },; e" n7 G  H. i9 k6 L" h

% s% O8 O" y- h" q$ T, V        {
1 ^9 G, |+ |, |( j# P7 s& R5 F
/ G7 v/ x, [/ O                .active_low = 0,
; k& |0 F( @: R& N7 m5 g4 _
! Q4 e' c* f' r: {/ o                .gpio = DA850_USER_LED3,
" F. |7 r; r. X* G7 A) o
6 ^% T/ i2 u3 E( E6 d  g, T6 X1 u                .name = "user_led3",8 _* Y. C9 v3 Z$ p

$ _9 b, ~4 m  `0 o, V& m                .default_trigger = "default-on",
& ~" W4 d( u0 w1 M; B2 {8 V1 |" y' X
2 \% |) p: t3 P6 U        },
% a+ `& I' S0 y5 v( F
: I+ M" w; A+ J1 y- k0 ^8 h& r! ]% J        {
$ r$ J7 g7 C# A# Q# V: }5 ~
: R2 R, b( u, N# Q3 ]                .active_low = 0,+ g# @$ |4 e. Z- {- s* _; h
9 x5 w9 W& ]' }0 h- A
                .gpio = DA850_USER_LED4,
, R7 f, N) M( L* b
: d9 p- d- O. [" u  e+ G1 Y3 }9 m                .name = "user_led4",
! b! g+ z5 @& N: K1 a7 ?# C
+ u  v% y: V* q3 P                .default_trigger = "default-on",, }  t) S4 {" t4 i/ B- j
8 U) V; O- ~9 I# N
        },& `/ R' a5 ]0 \+ r* l
& Z  R* Y8 F" X5 S5 i6 I
        {
% A- U3 Q3 E3 ^( {6 l* I1 r0 U% `9 i% ?  A
                .active_low = 0,  G' w+ y( P; u) n

% U2 ^9 [8 G/ ^" q                .gpio = DA850_USER_LED5,
+ M% V5 r. p0 ?( l, Q; i" E4 n
5 b$ |! d! k$ ~% [4 c2 h" [                .name = "user_led5",
3 t7 c2 U  ~9 K( y, y; R# q9 U" X5 D0 `; ~9 N( o; K6 F4 r
                .default_trigger = "default-on",
6 I% Z5 o& [) a  f0 P/ X8 L7 c, j$ p; M
        },: H' H" D3 U9 ]- e" y0 V2 u& ?& D

8 }$ c2 \' q; m4 t};/ s  i1 }, A- j: K; x

8 a4 |# Z2 G. D  J9 P# x# R) }+ ?& m3 d! U3 _' M
9 F4 ~, a4 X! N! ^. \
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 {# N- {2 y. z% a; P$ {8 I
1 u( G( A3 E* {0 K        .leds = da850_evm_tl_leds,
. b! L7 V9 q3 C, `$ Q; L# S6 f5 L9 C3 z
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% n3 M  \5 ]2 \5 |
0 q: y. Q8 H$ n, G( P3 r  @( i+ P
};
( h" B$ X* w5 ~% m- b9 Z/ I- s0 m# p0 ^; P! \' |4 v

- m& X3 D, t( N( [8 Q  Y  o) y
+ i) X2 V7 H: I4 x4 z1 istatic void led_dev_release(struct device *dev)
7 [7 l$ j; E6 P' D0 W/ r6 g% ?& ]6 ^1 Y
{
; f9 D9 I& C6 C# E
2 F/ C5 p4 {4 s& L/ j4 T};; F  Q0 J! r7 Y, u
$ U! o( f; ?) M

) S+ g! f% X  I7 L2 }& T4 m1 z, P. W+ T* z) T
static struct platform_device da850_evm_tl_leds_device = {5 V, Y# W9 o7 B
& ]( b1 G! m9 R% u! Z
        .name                = "leds-gpio",
  W3 D! W8 e3 T" i8 `7 ?) z+ p$ t; w. k
        .id                = 1,) D1 m4 o7 N( G/ y0 p
3 ]+ ~% _( A$ P: P' y* q) E
        .dev = {6 P0 @& d- `: q4 l" \' b
1 d6 o9 A! P7 x# L; e
                .platform_data = &da850_evm_tl_leds_pdata,3 T/ J- H( q: d, ~7 _! ~
5 h; f4 v- g8 s6 l  a1 V. i
                .release = led_dev_release,1 T4 {$ @: F( P5 P7 z; x' W: v

5 @9 _  c0 _) u/ R8 X8 i5 K        }
% J( y  D* Q4 K; Z- p* j1 j
9 X3 y. ^; e) _$ a6 ^& Q# ~};, N. i& H8 B1 q) T) G
, t7 a2 o" }; O2 S
4 d! C) ~. N$ B/ f# _7 V
; T6 G$ s# u2 w  q, N
static int __init led_platform_init(void)& F" O, A* B9 u/ h* t. {
/ H% g" a. a2 q) Q. J5 j" b; z
{
3 {3 ^# P  l6 |1 U
4 Y% S2 s. n! M2 ^0 J+ X: ^! Z        int ret;
. y8 Y3 j/ u; \/ N( a' S" ]( L/ r1 o* x
#if 0
" V- ?5 V6 X& t! {: ]3 |# _
+ W! Z) a# V2 k  r2 V5 ~2 ^5 Q+ s( U        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 T+ [! n" L) l. M. G% h
- k, Q, F" M" Y! b0 u" S7 v
        if (ret)
4 T4 d) n) |8 @( d/ L: y4 X6 Z' d2 g3 ]8 {- {
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
& H% @1 T; A: l3 w6 \) _1 x3 \5 R% v2 f0 r- O( Z
                                "%d\n", ret);
9 p# e" d6 q; h" N; W; p
* K0 j) f# f. d8 ?5 n  m: S6 l#endif
: }/ R2 C  U3 ?6 u* b3 q! U* r
" Y( n. K. i) u" z' `- |% L        ret = platform_device_register(&da850_evm_tl_leds_device);9 K; }4 |8 ~& O, G3 H5 F
$ C7 V; w8 _" ]! K1 K
        if (ret)
0 w8 c' C3 m0 b2 j
. s1 z/ j' k0 p& j                pr_warning("Could not register som GPIO expander LEDS");
3 g4 Y" Z( z+ ~7 r. b6 S! j* \7 z4 b9 ^2 Y
        else! |9 `5 G/ r4 |+ z5 d8 u

$ Y0 H2 O! m. }0 _( R" Y9 ?; [7 I                printk(KERN_INFO "LED register sucessful!\n");
: C$ ^& Y5 J6 p7 _/ c7 }
% {: K$ G0 `4 ~/ i- K) q* M3 m8 ^. ?& [. v) `

2 a) ^7 M0 [5 @9 a/ v        return ret;& U- M8 b1 c8 v3 S8 }, p
: P) K* }# g5 b% Q5 W' Q7 S  Q
}
1 h5 Z/ L5 C& n* P
9 D1 v5 O' j, @# l5 B; I1 I) M2 Z+ C2 v* Z8 J

  m* M3 b' G9 B; ]4 @; z' Estatic void __exit led_platform_exit(void). k1 v0 D+ v+ L; Q& F, m
1 q' C* d, K5 W  }$ R  C
{
5 r7 l' L6 T: J5 `  ?; Z0 j( h9 n, V# N7 B8 k8 p8 Y/ n+ b+ w
        platform_device_unregister(&da850_evm_tl_leds_device);
' d& [$ x7 {* `, x" G5 p% D4 |) o! s( ^* _

+ ]8 C8 q: F1 ~' @) ]5 q. v& t# \! L4 Z& _3 F( f3 y
        printk(KERN_INFO "LED unregister!\n");" w7 W5 M# ~# B5 ]8 p3 I. Y

1 w  x" o! f0 R}5 F, X1 E0 E4 t( M

+ B, C4 N& n! e6 a: ]5 V' [8 ^1 W8 l; Z% ^9 y; }' K5 J- I

( x& W; c9 E" P5 s! K- u" }- Umodule_init(led_platform_init);( K( r8 _; E1 n) ]& C) Q
0 {1 Z% }) ~0 @$ s
module_exit(led_platform_exit);
3 A  J3 t* g9 x' ~  [( c
# j2 }% L; G" l  D% A; }: C+ @- L$ m, B1 @+ h, w% _4 {: E( m

7 U% o- z" [, p: k+ J; ZMODULE_DESCRIPTION("Led platform driver");
! g0 {$ j- K9 l
& `' q' Q, z" y/ ]" V! S$ v5 FMODULE_AUTHOR("Tronlong");
3 L, M- P/ O7 q0 W/ _) m7 n2 e( {" g3 \/ ^
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。) m3 ?8 C8 ^4 c5 K1 u5 K; |! [5 a

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
/ r) O2 v( c3 m% @4 V- K! v您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。" L" b# v$ t% Z$ T' U0 u# W
...
9 |5 a4 m4 E5 d2 W' \, _
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。, K+ R9 z7 w4 r" m) {6 g( G
http://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-6 00:39 , Processed in 0.042833 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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