程序的运行问题s - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
! n, _& J& Y; f% P3 h& f  U8 @! Y; x$ B+ _. f7 S
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
2 C$ Y2 k6 O  B  e4 @1 l6 j
$ }3 g' ^; `6 I; E* z' U之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?2 O' g) T1 h( z- w

, E  P. ]% R) Z4 ]

本帖子中包含更多资源

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

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
* p$ j8 T$ l  E1 h0 Qlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

8 B" a7 R% [! A# x! A我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
; Y0 H5 z) }$ W. {. I9 W0 `#include <linux/module.h>. B8 L8 T8 S$ B* U/ J% v. b  `
/ O' `$ o: @, w8 G
#include <linux/kernel.h>
$ Y6 q1 `: j( {5 t) o' ^
# C% f# m2 s' N; U! Q4 e$ V#include <linux/types.h>- m7 L$ E2 o" M

5 Q( d3 F, R% I0 R- G#include <linux/gpio.h>9 w0 ]' N$ j- q6 G
# S" c; B: D7 j1 W5 ^
#include <linux/leds.h>
7 l) B) V: _1 c  J& ]. ^4 T8 T& ]4 i, S6 p$ x) `
#include <linux/platform_device.h>
0 @( x( n' e5 v2 g5 s3 J
- I) i5 w! Z2 o0 ]+ }) s/ J2 K; R3 I
4 N% C$ R! x$ u5 \' ^  ^% _) y
$ x6 m. U& u, s  A7 s0 u/ m#include <asm/mach-types.h>
! ~5 I7 g( m8 f' }7 P
' r* k# X5 l; {5 p  |. ?: w#include <asm/mach/arch.h>
  |9 z2 C: f  ?2 E3 E, @9 {4 `( \3 v1 L
#include <mach/da8xx.h>2 X/ F" D* Z/ M  J
& s" N3 p& P, ~9 R' Y' [7 B
#include <mach/mux.h>- B3 l5 _% J# i$ A2 g
, k" }+ Z0 h+ @5 [4 U

% n3 }2 ?8 T, y  R) R4 s
: h& P5 h) T; A5 D' U' J#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 ?' g! |! z7 y8 ^  n
! _! l$ \' a' F" H& O- X: U6 D#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 c, x* J+ F7 R+ m9 W! ?

; r% @" O2 U3 U4 V/ f#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- E5 _; D! w: E6 b4 a4 s8 I, c( ?3 o3 \% u& y& y! Q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. h" ^9 K3 [; h5 n5 P0 N$ J- v; J0 X; y5 g) [2 z3 ]2 y
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
3 L  Z: S, {, {. b1 B' |
6 f* U6 D8 ~( ?; C7 S" g1 A#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
2 n6 w, T% u! C2 F% Y8 y/ e# X4 Q7 |+ s: @9 F
1 L( a8 e- f& _% V6 a  q5 T" D! m- N
% W$ T( F$ p3 n
/* assign the tl som board LED-GPIOs*/( k, D: Y9 ^! ]8 u* j
) N% B* ~  [. L
static const short da850_evm_tl_user_led_pins[] = {: N: M* r6 ~, @( Q- M1 l
" c  P  @2 h" _) {  o* |
        /* These pins are definition at <mach/mux.h> file */& H7 l& s3 K7 X, w4 I: {. g. d
/ p$ w+ u% r9 x7 x, Q$ \& N( n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
5 m# @' W8 L0 k7 P
9 n. C- e- i3 E& l: }, V' h4 m        -1
- Z2 B3 w/ R0 E( P+ Z( j) |& Q8 C0 h, Y
};
- V  |4 G3 d6 Y* Q: c2 j# X
, M0 C4 h5 Q0 j9 i9 g0 X) {
7 V; p: @: O# g  N! U2 V1 {! [: z& m, y8 V. A
static struct gpio_led da850_evm_tl_leds[] = {" {7 \5 T" p+ M+ k
$ N' V& `) D$ g) a8 ^' ~. [
        {
6 ~6 V) g! z2 F
! N* P( m8 F: ^# U  m                .active_low = 0,
( E- q. r" x$ [. `; t0 n2 W, t
4 U" B& z7 g6 z                .gpio = DA850_USER_LED0,; {8 V% n  Q: |' P( k4 R
9 h) F: d) M3 T6 B
                .name = "user_led0",1 i. T7 G7 ~) c% p

4 D, ^% V+ |7 i) I$ Y/ \                .default_trigger = "default-on",
( |* V7 c0 G# I6 y& W8 f- r" r8 e
& ~' ^, u" I' v4 e0 D$ y+ w        },
, C. N) o6 ~) K2 `3 z" T& \" B& {# \2 Q  }% p
        {  f# f) t. V0 y/ a' B; q
. I  v" ]$ e) J/ F
                .active_low = 0,- F! e+ G  Q+ Y( ?

, U2 e) X) k0 t, M# C# U  _                .gpio = DA850_USER_LED1,
$ U* \% U- i7 g( w' v, l  l$ m' J; l% n
                .name = "user_led1",
) a7 h$ M0 T9 G( n* X. v' \1 o: i; C9 G* }
                .default_trigger = "default-on",
8 ^# @, F. S( p1 y  t% \) r3 r5 }2 \& a" Y
        },
% P: U( U$ ?* r( ~7 M4 H# H" Y; r4 E/ V& o, A7 {) G" {6 D5 Y
        {/ p' h, c" |5 A$ b& Y
; r( N6 o' P5 ^% u8 ~& L7 b
                .active_low = 0,; v% ]. [( j$ l3 q3 }7 ~$ D. `
$ P( L" B/ Q7 q1 ?7 r9 }
                .gpio = DA850_USER_LED2,
" _! P+ V8 A% P2 n/ V% K8 o
/ j; a% l' N2 A. R4 X& X# M                .name = "user_led2",
" c* g3 k9 {" Z5 M; M$ V! V/ [
4 h& H/ {1 l7 X' [0 v" Z                .default_trigger = "default-on",
# z6 V% f' H' h$ g5 F& C* Y3 t
& S3 `* h1 s2 Q0 R0 S9 m        },0 a' y( u0 J' p; K& f

7 R, Y' o; A8 \2 \        {
6 n: u6 n# G' t
8 }6 ?( o6 ~' @% x7 p) N                .active_low = 0,
% S: z* Y' _7 n) V/ S/ [2 U1 q2 a* a; u' z
                .gpio = DA850_USER_LED3,
- f1 B5 f5 t% Q5 a6 v  T+ b1 F# X4 v9 F4 G- M6 g- S9 T) F: ?6 A% ~
                .name = "user_led3",: q; h3 t. k$ F
; ^" o1 C0 \- @) y7 N7 Y! n  U( S
                .default_trigger = "default-on",
) q. r2 c, A# t$ p- y1 i7 E0 b$ e: E  b9 s' i. z
        },
0 F4 O7 e5 Z+ l4 M2 {8 E+ Z$ I, ]( h9 ~' @
        {5 ?: o7 W, X2 h

4 f" d* @- u$ A2 Q9 ^: ?                .active_low = 0,/ f/ U0 |) V- c
3 R& @- n/ d( k2 r  J1 t" v
                .gpio = DA850_USER_LED4,7 Y# A8 Y! D+ y/ i" w

* A+ e2 s6 N5 U, O' `' z2 s- V* A                .name = "user_led4"," Q8 J& b1 @2 E& {3 S1 N! u, J. W/ I6 r6 m
9 D2 N4 a2 N/ E
                .default_trigger = "default-on",) \3 f3 j2 B6 {

3 v4 G0 y' [* V1 [        },8 m- q2 B- h/ i* P! n# E2 B

* `$ E7 U# g2 o5 F' P        {+ o5 p- u1 s0 O) f- H9 p8 r4 h

  B- {$ H9 p7 f  u                .active_low = 0,
, r. ~" ]) z3 D/ O1 c2 V
0 [, z! A6 ?' F' `! l                .gpio = DA850_USER_LED5,* S$ b. {% U9 K4 ~1 S4 p

0 M+ P. L' @1 ?3 K5 y  E                .name = "user_led5",
# @) r4 J. v$ f- y1 X
# s* Q! ~; t% h9 o                .default_trigger = "default-on",
3 G* y" k6 a' M4 f
* b1 T. l' Y/ k/ H( |, r        },
* [3 ^7 Y2 o& X6 ^( y3 R
$ R4 _& C1 }4 Z! s/ n. K};  Q3 Z) H! K" \3 L5 ^0 Q! _- F
) z# [9 @1 q8 ]8 s

/ V9 ^9 E0 p) D5 E$ y, z0 n( ^6 k! X9 U& \  a8 p
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  m* I3 l9 c3 |$ L
0 c6 x& i& `3 ?& c, @        .leds = da850_evm_tl_leds,& e4 p5 R2 X6 @4 F& d9 O1 i3 ^) h
$ F+ m, Z; F/ y" B; g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," e4 Q& G% x  c5 X3 j
, W# {% K# r! k: ^+ E) H5 L
};
( y; S0 w5 K1 s) o# D$ ^
: L& ~1 s0 [5 k/ H$ b. j+ r. `3 D& I8 N
/ T& _( u- P* z- h8 [6 V5 x+ G7 P
static void led_dev_release(struct device *dev)6 k, l5 F1 e9 a! `# E
; s' \& Y: Y$ ~* t( o* T' X
{$ ~& H% Q; O" S2 J$ e1 N" j

# G& }6 ], n1 C  o5 i};
, l) b) O+ ~/ n; D! G) B" t
+ t" t+ j) F; `
( f5 [# y0 H) L. ^$ j
% C$ j# a) D9 s3 @6 s- U9 U1 c) Sstatic struct platform_device da850_evm_tl_leds_device = {
6 R1 R0 Z2 n$ Q+ K+ X! ~# u6 J) z) j; L
        .name                = "leds-gpio",
0 c/ \6 K: G, l* q' |5 S# t7 b- Z+ d! e$ y
        .id                = 1,
7 h5 y8 I2 b  u, Q" c0 r) J8 m& d" U) a# {
        .dev = {
. s6 Q1 X, m: D$ X2 U8 x' d6 p* ~/ E& |1 G7 w1 D' I
                .platform_data = &da850_evm_tl_leds_pdata,
3 ~4 {6 @5 O( h& w
# i& F, m1 {6 `! F' Y2 i' \                .release = led_dev_release,, J5 q7 V; _$ o: t, z

: _! R# q$ N8 q: W" r/ u* P7 I        }
+ T1 T$ J* _6 Q7 B* B0 M! j
% F  O  Z2 U# _; G' m2 L1 ~};: _# ^# c; b8 o; k

* B' {2 \+ k' k, Y8 U2 m  D% w, E, W3 D- s

3 g  R5 K8 m+ f+ }5 O; x. _static int __init led_platform_init(void)% Q3 X2 ^# @3 p$ \( r+ c

" H0 T$ R* Q6 Y* J; m% ~5 f{) b9 r" t. f. v9 u

9 J! L6 d* l/ A* ?9 P" H* B& d# \        int ret;1 n  x9 Z3 \* y  W" R
7 R& Y- t8 n; U+ Z
#if 0
6 R7 Q! R& G( `, I2 g& h# D! G. y8 Y- c* e/ z# `. h
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 G: S" w0 Q$ q
; ^% L# \. _1 m2 x        if (ret)2 ^8 ^' r4 p& D( O
. T5 q- q+ l1 g: g% o
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" H( }& l/ L6 {

* ^7 Q( d1 L* [5 i! M                                "%d\n", ret);# B# y0 [3 _$ `) G

& w5 _% x8 s* v/ a#endif
: x. @1 E8 F' t0 b; z* R, ?: Z# A
' j+ L. P% ?& a5 v+ }7 @        ret = platform_device_register(&da850_evm_tl_leds_device);
4 W& z7 O# X# w+ ~
9 X/ @: M- Q: B% {1 G        if (ret)% r4 B! H) n7 g% ~

9 {5 {) D% ^4 d2 l( Q7 q& s6 E                pr_warning("Could not register som GPIO expander LEDS");
! ^; p  E; S1 b3 u7 `& j; x0 d5 M
( G! n8 ]6 v: d2 K: ^6 L2 K        else
0 s! l8 q2 |4 s, z3 v8 |/ z1 A3 F2 n0 s. l
                printk(KERN_INFO "LED register sucessful!\n");+ v& A7 `* A5 R# {# J

' S% z. ^( a9 ~3 X' F2 U, I
% `; ~  q. H/ f8 {
; P5 p( E# K1 @* ~  w        return ret;( Q/ \3 ~# ~( h1 N

3 @: n' m. F+ X( v7 `; |" f}+ r0 B; W! q, L# g
& _2 M4 j) Y/ N  H4 v

7 n% {1 k7 t' X) u# i% r3 B( @, V" ~# ^
static void __exit led_platform_exit(void)
( E) ?' a6 R2 G% x6 i$ K* S( f  }2 U8 ^& N4 F+ Z# _
{5 d: [! U3 S2 c, X: R8 ^" a

. n1 r7 u% b% I" k/ _        platform_device_unregister(&da850_evm_tl_leds_device);
1 k8 P2 R. U% ?+ K" j% b  ?) `, n1 J* ?

! A2 @4 E& Q) |$ [& [4 x7 E2 R! r! X% l+ k; H% q
        printk(KERN_INFO "LED unregister!\n");: v$ q7 |2 B8 B3 p% D" t/ R& \
- d. B4 d  \6 l# D- Q
}2 k. Y, t5 g* z6 L
8 H4 l$ \$ h0 T4 t" k# h
+ h$ Q) @8 G4 c( d/ H" ~: |* H% |

$ f; c, z0 G& Pmodule_init(led_platform_init);
& T+ `( I: U3 ]( l& r" Q9 n& }7 L! ?, [% F8 y2 d6 T6 f) H
module_exit(led_platform_exit);0 }2 n: g; x: c/ a, ^( U
, {- u0 {2 s# ~; Z2 V

/ S$ J: i) j# K' x* c/ x# A
& n! D, T- C) qMODULE_DESCRIPTION("Led platform driver");  X8 Z0 n. H( a' U( N' C
. D+ ]0 u2 z- @0 d- c0 i
MODULE_AUTHOR("Tronlong");* C+ W" _% y& v3 N4 {( q  l4 T# {, G

: f2 ?# p, O- B( k& i/ G+ ^+ [  HMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
7 [( W" e; \$ z" c4 B  Z! k

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
; @& v: P* q) w: g4 j您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
8 o; O4 ^. O6 d" c( V/ O8 I ...
% \: q: F5 F/ O+ M" W0 V
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。% _& x6 y( i/ @* V/ z# Q+ S
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, 2026-2-7 08:49 , Processed in 0.044368 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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