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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 5 Z# r& Q4 }/ e9 z

& K: B0 L% a/ ]请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的& C$ A' |! E8 _
5 |) W4 e$ Z& X4 e
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?9 A" ~9 H3 Q6 W# ?

3 R3 m0 d* w. g& v) f

本帖子中包含更多资源

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

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:14$ d' _8 w; |0 Q% B  Q% L, S$ N
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
* q/ |5 G- ~  I$ O, v
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
: e" `- u5 J  B: ?( U#include <linux/module.h>; c" l/ v9 |. ?( b& o1 s( _4 X5 S

3 U2 E! G( O8 O) Z#include <linux/kernel.h># [+ M% p1 z# s5 p8 n2 h

4 ]' G( o% Y' b" q& e, U#include <linux/types.h>
7 s$ q2 m3 j2 g# }6 `8 R
& M) ?# d: f! H) h. H#include <linux/gpio.h>
, H( H! p) A9 n  T, Q5 ?/ @9 |" V) t5 }8 f8 q& D
#include <linux/leds.h>
) q( P6 M0 e" E' u2 H: |' z7 e7 S1 Z" E, \% c
#include <linux/platform_device.h>
+ E  J' s! c  F1 s5 L6 ]2 ]
2 r$ M4 T; D; P+ ]1 a, Q8 L  m) k4 @5 f5 {
; i- I9 n5 v' e5 X* v
#include <asm/mach-types.h>0 u2 _& V0 ]+ U8 u- Y

5 L2 \' ]# J/ X, ]/ E3 Z#include <asm/mach/arch.h>5 i! G& D$ K7 `, ]  }* d

/ k  G5 F% t! t" R! A; ~8 E0 K* D#include <mach/da8xx.h>
) l/ O+ i4 n) p( D" _
8 b4 j0 Z& J' ]5 u! L2 m2 l% w#include <mach/mux.h>
" ~  d- Z6 z( J4 n! g" I) X7 G) J5 X

2 @2 L' W. D2 T# H0 J! k! v, @8 b, M/ n
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& A) n" C4 C( ^% J7 y8 B$ }" Z) e, X
% D% v* B3 h: v& d- b; P9 p7 |8 Q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* C' S9 K& M, A8 ~3 n7 X" J/ u

$ h/ Z; ^; @% \1 L- f#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 [+ h1 n9 \% g
, [! ?, F, R; G3 o7 ~#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 h( P$ J3 d! G( D
* f8 {3 e3 T  ^9 w7 g+ x1 l
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
3 z. k4 Z8 B5 ~; @& r- P* z. x3 [) k7 f; b% \: O
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
( _* ]) m# |0 D8 \% \8 f& g, Q$ W: q3 N  ^+ ~% D
3 t# F1 _6 v$ `

4 x5 w1 H5 l" f/* assign the tl som board LED-GPIOs*/
- g" v, Q& D7 Q2 _; L- D& F0 s  R/ B1 F  k! [1 `
static const short da850_evm_tl_user_led_pins[] = {! e7 z3 R! s2 q8 }! W6 A

6 d/ V5 U: h$ |; Q2 o. u/ p1 X9 z9 b        /* These pins are definition at <mach/mux.h> file */
' S' v: o; ?% Y) b  B  m
8 Q- u5 H) a) a6 X+ z9 a! s        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
6 @: Q% n) K+ Z3 m$ H3 j
7 w8 B2 D: @/ ^6 d        -1, P6 F) `. g7 }7 L6 J- B

0 |' h9 B/ [$ B  L1 K+ E};
8 g. q7 a% a! i# w- n6 N  w1 I" A( o- s) a7 s. E- m

/ P; o' Z0 N1 v# ]
$ P8 G- w8 O$ A6 ^static struct gpio_led da850_evm_tl_leds[] = {4 |6 q! U1 n+ N/ y% X( E  X
4 t; J7 w4 |& _2 ~/ H0 _' W
        {
9 ]1 C2 a  h" D& @6 j4 w0 P- m. J3 j. z3 L, Z3 m
                .active_low = 0,$ F0 ^8 w( P3 S  k) Q

8 z& m: H0 J7 d, D/ y8 k  q  R: ?: x                .gpio = DA850_USER_LED0,
  ]2 _# j4 [8 {% X4 c& ?, Y9 v9 r- N9 D
                .name = "user_led0",5 `5 U6 a$ H' r3 t
; A& s; ?8 L, i' u: |9 F( }
                .default_trigger = "default-on",
! f9 H1 R. d1 ?+ ^& X9 [7 Y8 I8 O
3 z, O) l# m4 ~" y; ?        },6 B7 n5 H4 X: F9 a2 K2 _  L

, B9 k& b9 M# ]        {0 f0 i9 b; `3 f

6 g) W/ {/ A& ~6 ~1 u2 E                .active_low = 0," w, B" e1 L- M8 Y2 z3 i2 X0 d0 D- Q

  n1 V6 c2 L, x) H$ j                .gpio = DA850_USER_LED1,
9 d9 {/ V! ]! Z5 G/ F8 y9 T( m2 ^5 V' p$ U1 S9 W; l6 @
                .name = "user_led1",/ H- W& V$ w$ {& @. X: P

& d2 h1 B# t# ]7 j6 I7 D                .default_trigger = "default-on",
* c, U; M' J# ]) N9 C. A# A/ ^; u9 T
% Q+ `* ^* o% v3 }% h7 D        },
# `+ q" a9 H, a8 A, |6 @4 ]0 u( F
) }" ]9 `8 r( Y9 z3 F2 Z        {+ o& V3 I& G; q

: p) o; p. p( A3 u                .active_low = 0,
5 |8 i. h- h6 g$ Z3 N
4 s! O/ Q8 f# B- v# B$ |                .gpio = DA850_USER_LED2,( V! y$ I5 T* ~$ u( V6 l9 w5 u

, |" U$ i' b  J2 ~: ?                .name = "user_led2",8 c: [9 }0 Y' h; K, W: h
4 o/ Q  K- _7 l9 N
                .default_trigger = "default-on",
  S2 S/ Z9 V- p+ K, L4 n2 }2 a6 e/ S9 G" o9 E: o
        },! k6 Q; o; B" S9 Z( c* G

( e# i% f6 \9 M% P, c        {- Q1 S. ~0 P2 V/ L( g8 f2 y+ O8 k  q

( k& V( T0 l) ~3 D1 c9 {, X1 s                .active_low = 0,
( }+ X! {7 W) Y$ ~
: c( W" b, N# F/ D. r6 y- X8 b                .gpio = DA850_USER_LED3,
4 ]: T2 m6 V" C6 P) W& j0 F  Z8 w; ~) g$ g- Z% I) e: y- F6 K
                .name = "user_led3",
, t9 x* _/ B( |, f7 L" t0 W+ V0 F
( ~4 M# v' M1 O) }* Q                .default_trigger = "default-on",) _' O7 b& s7 m8 |
: T& o- ?" ~: c6 W( ]& k
        },
) f  [8 t/ B) p; ], d) l* N1 q4 R% B+ M0 s0 O; S
        {
2 H# r- i( r" l7 c# h% R
( D+ j( @; a* n- J( D* A. B                .active_low = 0,( @: A# t7 N5 }
) Y! D) Z+ F: ^) w/ u
                .gpio = DA850_USER_LED4,
4 n2 D3 m; |' u3 d% m. [# ^
6 i8 w1 _. ?) O, `9 Q8 N* M                .name = "user_led4",; i/ p& y$ q. Q9 t" U, o$ ?! y, O  }! C

* s3 g( m6 [" x, L. Z                .default_trigger = "default-on",
( U  |0 p. f) d+ W; K9 @; b( p: i2 T" \% I) T
        },) i" _  @; ~+ a) e* H0 C

5 w2 Y2 N/ n/ Y4 k8 _2 x4 Q1 t        {8 g, N9 k' A- f' ?# v: E
/ s2 R/ |1 J5 x/ V& g+ ^2 I
                .active_low = 0,# p; e1 z$ u% H; W' M0 C2 z( |
; t1 H2 b8 o, t; C2 k. V
                .gpio = DA850_USER_LED5,* j. b$ s" k; Q0 ]4 D( P8 k
# D5 |/ I8 Q% {3 C$ j8 u
                .name = "user_led5",) G: _! h' [& j0 a+ W

0 M) P) \2 {! A9 u. }1 M9 J                .default_trigger = "default-on",
: ?+ t1 L) n( u$ ?6 N; q. ]7 ?4 s0 \/ k$ K- e$ k( r. c' [
        },
) _( @0 m3 q/ H. U3 S5 q; F$ I$ S8 M- w
};; \# b" G+ O2 L+ x3 x

: _! m, ~3 o" f/ `$ `! z
% u. k; x, S' r
" x! Y7 i; N2 V5 ^7 b$ q0 ~2 }static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- D$ z( l- q! o, z8 H$ y& c3 |; x5 J* v) o* U5 |/ L- t( m  O
        .leds = da850_evm_tl_leds,1 U& x7 P) `  |" |# Z/ h# Z
) Y) g6 k) y" R' K+ V' j, a2 M4 F% }) }/ |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( l$ ~/ a* J0 }/ e6 I
, D) p/ M& f7 [+ N};+ S( {7 [8 i. k

' }0 y, T9 D( }# Q8 j% S, f! ]& B
* w: f. `4 b% Q8 s; I% c6 h7 H7 S. O
8 r# M; n) N7 y2 ~/ Q" vstatic void led_dev_release(struct device *dev)4 R: \1 J+ _3 \3 ~# R$ L. i" O6 R

! M4 x- f! \7 W) ]{' Q' b, ^7 f1 B6 b6 W3 g( Q
/ n# j' R% p$ z" F" _2 L4 @  t. |
};
& t: N( y5 p/ X; l- ^" t- L( Q: r% V. q4 n
% \  B4 P% ^$ p1 j
+ {1 p& {9 Y9 b5 q6 I( ~
static struct platform_device da850_evm_tl_leds_device = {4 b9 R# h- N; o
1 ~; f' v. j% ]& v# g, _, N. ]4 m
        .name                = "leds-gpio",
# z4 [( r2 j, J0 s& Q2 S: X5 {9 A; P# P; f0 z& I4 k
        .id                = 1,
" z; H4 b7 p. o( {! w# F7 @
5 A0 M4 U6 T4 N$ z        .dev = {9 n9 f0 b( N2 ^, D& f& Q

3 X5 C9 z2 |6 ]- I0 i                .platform_data = &da850_evm_tl_leds_pdata,
! @* V7 i6 M1 }- S. a% q# S
, B- s; ^( q1 r                .release = led_dev_release,( H: p% C7 Z0 ~& C, N3 ~; \2 w- W' Z8 w9 m

1 Y$ X: s; C8 d0 ?  P        }
" r; L# u) i5 O8 p
# i( V5 S" V& F! @. n};
# K0 k0 |$ V( g4 Y8 H: F% w# ~5 b5 b  i
; ]# E2 }) I0 ?% X( s4 I: N% H
9 C# [. C9 `8 J& Y( r
static int __init led_platform_init(void)
1 @" ?. q9 E- M  b5 |0 c4 s( `/ |6 e9 N* C
{' ^8 u+ j9 f0 N& b

* X8 o- V% X' X        int ret;
5 y6 S/ Z8 R8 x' ]+ S6 I  f  k8 F0 y- F1 i  G; B2 _8 u: k
#if 0
! z* U1 P- ^* b$ p6 q: I3 s4 [7 _' Q+ r* J
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 G2 N: O" P% t
1 o- K1 T. k! E  M, N( J        if (ret)$ y9 Z! G9 B, a2 h! ?* }

7 e% {$ Q. ?; P. S! a# W( d' }                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 Z: h. o6 I: c% j- _4 O+ t
% M6 W) C7 g5 b6 W$ ~! n                                "%d\n", ret);9 s3 D" \; N- o+ N' b- K# M% v

) P  s- _# h1 p+ O" A0 r1 x#endif
8 {# c0 k4 L1 \/ x1 j, {2 Z6 b% G% t6 Y+ W% N
        ret = platform_device_register(&da850_evm_tl_leds_device);
2 H0 d  ^! O7 Q8 O! Y2 R3 D/ M$ B* ?9 {# Z- Q# w" _6 f
        if (ret)
$ Z+ i, Y# G7 w& d# Z" H+ f8 Z" f7 @$ q9 M/ R! H
                pr_warning("Could not register som GPIO expander LEDS");7 _* o$ _2 w2 M2 s) m

, c7 g; y3 d! N0 a: e        else0 m" k2 ?' g% d! ^; c4 k5 {

6 e# N. @. K0 n) ~3 J0 U3 w3 U; b                printk(KERN_INFO "LED register sucessful!\n");
1 c* w' Y, @- a1 U2 h
1 C: j, j2 j( s1 J' S. a/ i7 t4 n; A
5 Z' F8 \! U) W, D, C" A, y9 s7 W% o/ T3 L. ?9 X; O* ^
        return ret;
8 M- _8 ?8 U! q. I
$ V$ t; k% [0 @+ q0 p! W}
! c; D$ b2 z9 v' h7 h- r5 h; @$ y1 w5 o  Z
$ f  S6 j0 i+ s5 f$ H8 N5 Q  A

) j, R% _. J5 |+ g4 Istatic void __exit led_platform_exit(void)
; `2 L8 Z0 t! d) \8 r" o: l0 ^) I. o' h
{
. [( |$ d. \. ?' i- |+ \; w7 `3 E( Y4 K. a
        platform_device_unregister(&da850_evm_tl_leds_device);2 z9 r5 o9 k% w

* b# K( J( u: v1 T9 l* ?
9 j- v7 u- R9 A' n% M" Y3 H& }" R
        printk(KERN_INFO "LED unregister!\n");* [$ E% I$ d- [& n+ ?
) [1 _- l  q2 g) o# v, o/ r+ ?
}
( r( R8 K: X% e& r- A- I1 \
( i9 L1 l1 e3 ?6 D
+ g% g$ h% n- `6 E* U8 U" q& l$ _7 X
module_init(led_platform_init);
% X5 q$ p2 h5 W9 V$ c& L1 m. w- n. ?0 v! _
module_exit(led_platform_exit);" j5 |7 J. v9 I: Z% C: a  e, q% _
/ W4 Z) I! u4 }8 w) O, k
" {0 S. \/ w" A7 W* r

$ U7 k+ g) ]+ I4 `/ F6 F  z( ~MODULE_DESCRIPTION("Led platform driver");
9 G4 {" B; R9 ^/ Z1 q8 P! E! {; e+ L  O* Y
MODULE_AUTHOR("Tronlong");
+ C: w6 i2 t' a. _
% k* ?3 C6 s: T% uMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
; c6 I/ y+ P3 _; E( ?

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:321 j6 S2 e0 B$ C2 i
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。5 r- [& b2 N1 |2 [$ A
...

* B- w$ m* k) T, p+ y' V好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。) A! T& }" ?$ ^: f
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, 2025-12-16 03:06 , Processed in 0.045892 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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