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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
5 h" B+ P- R9 H& V5 G6 B$ t$ L+ P; y
6 z' _2 Q! c' l! `6 j. g请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的3 O" m8 G8 W/ Z8 o
" j1 W( Q: r6 g
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
. W2 \! K4 M0 J0 A- V
7 Y7 R7 }: C( a! b  j# w' _  I# D) c" T

本帖子中包含更多资源

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

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 {: k: W2 e; X3 g% X3 U6 \8 n, X
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

$ v' U* a& ^8 _& ~. X8 ]9 ?我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
- b4 v- W7 R- Y( J- [( b' @7 W#include <linux/module.h>
) T; i  D1 Q4 P$ A9 b5 u( q3 d" J' n* {) }1 X
#include <linux/kernel.h>
9 Q8 G/ e' [2 H6 Q8 Y2 _
! }) r' t) k7 p: A# Q! ^#include <linux/types.h>
" s$ J; O* c  J* k3 k  Z; m) A4 I7 T; K/ Z6 |( H
#include <linux/gpio.h>7 L$ d/ E$ U2 ^9 ?) a0 F* S
$ g5 ?& P1 d* [* o. |) A" o& w! s
#include <linux/leds.h>( N' n; X1 q( X2 C5 q$ F) H
+ w! [* {3 |7 p9 G" N6 n6 p/ |* h
#include <linux/platform_device.h>
% U$ ~4 n; g/ I" ]0 m3 W  d3 t! a; H( X+ W

4 N. F% `- N1 u9 s
9 Z7 G7 |* z; M7 l4 J) l. h/ B& J#include <asm/mach-types.h>+ C2 g. K& e, h8 t. }

! z  q! E  b7 x# b+ n* x9 O#include <asm/mach/arch.h># R" G6 b$ ~  m; F7 l

2 `& k* E9 t- H1 d# E9 O. |#include <mach/da8xx.h># F1 c: H# U7 x* p0 u) J" h

# A5 w9 D1 A$ M, W#include <mach/mux.h>
9 G' G9 R% p0 @' W5 Y2 L& A$ ]3 X( \/ L4 y
1 k8 |4 N4 @/ A, d9 M& Q- `

1 S5 h: {* T) N: \; d. H/ {2 {#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- _. Z1 G2 m. x, e( y
# q6 ]; _* K3 g. w( m#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ `' [1 D: i% j  i( k0 B; s! _3 O, X0 H* Z" o1 C$ `7 u9 M! Q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 e7 M( e5 ^# n

/ W4 s* F& ^# H1 ]0 V/ E1 L6 {7 T#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). ^% y3 \# y9 x4 r* F4 {- n

) j2 `* q3 g# g, e- G) F$ M#define DA850_USER_LED4 GPIO_TO_PIN(6,12)+ I) E7 E% K' V, m+ R* T0 Z, y

  q8 r5 D6 V; z% X0 U  L#define DA850_USER_LED5 GPIO_TO_PIN(6,13)9 g0 E( B9 P$ _  Z6 k
6 K# f0 k/ r0 u) `- Z& i' M  C

/ {  b4 ]& y  D4 d8 M" G1 }) [
4 a) |5 V7 j1 [& q$ e1 k9 P2 d: v/* assign the tl som board LED-GPIOs*/5 D  z/ {- G# U

5 l0 h8 c3 f2 V1 F; S; _/ j$ C& Ostatic const short da850_evm_tl_user_led_pins[] = {7 X  m9 m0 k! H& N; @
0 R5 E6 {4 t# E0 X
        /* These pins are definition at <mach/mux.h> file */
2 F2 j5 |- L& n+ M' _1 u
. N& O6 W* m# M  A4 e1 r) Q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
" e5 A6 [  ]8 T; g, ^, N1 Y* _* J0 l
        -1
6 W/ s8 n$ b1 X% M: C
5 F& F. G& X, D- S: ~& O};6 Q  G3 J. x5 C& D$ }3 }
6 @' M: l  S: b! {

0 |6 n; a* h8 ^
& s" r4 ~+ d2 w1 A% estatic struct gpio_led da850_evm_tl_leds[] = {3 S- n. T7 F$ _* ]7 j. K0 D5 ?* ^" {
# u2 J1 Z, `0 e) G; F8 w3 X
        {
) k) a, q' @! Y0 d" o0 D& p( K/ Q2 P5 G, d
                .active_low = 0,7 o$ r0 r, \9 Z% k/ ?  p9 t
: T+ ^# ]6 o# o* @) t: M+ ~' W
                .gpio = DA850_USER_LED0,
  o7 R9 z& Z2 V
- S5 S! S. ?( X0 y! Y0 Y                .name = "user_led0",
; U- f4 p( D+ @. [# P
" M* e0 L) M9 S1 H& E+ U3 d                .default_trigger = "default-on",
2 M3 ~/ M; h! B- y1 y6 e2 B: X2 T5 P: o9 ?; M7 t0 y1 v
        },
" r. ]. V! z( C& R- q* F' {. B+ g' D0 V
        {* E# j& `) p  {# w6 u; y
+ I2 T, I) Y& U2 t
                .active_low = 0,0 A' `" w" J' G# c" g

# `9 g, B( Q- y! k& R5 \                .gpio = DA850_USER_LED1,
9 \* p/ z& b7 [: n9 L' }: d% V
! }, B+ a! L- F" a                .name = "user_led1",2 V' F; Z, p# v$ Y
% K! A" K! x' H: g* C
                .default_trigger = "default-on",. [3 v& R* t( n/ c2 x4 x# }- `6 z
' k3 t! h+ r2 n  |" o; ^# k
        },
( R. ]( P* Y' r/ e# I) x$ ]# x% ]  }7 d" i: y! }3 H
        {7 o* W# _- k6 ^% D! j% S: }4 l/ b
2 ]/ Z) R; a0 }0 b% \. F
                .active_low = 0,) \' Z1 E$ _4 w$ Q% a7 v) J1 r
8 f# z- R3 b  a9 L& _& n) Z. l
                .gpio = DA850_USER_LED2,
, _  b  {8 F5 L- u: ~1 Q+ H4 J5 q5 h
                .name = "user_led2",! y5 `. Y/ y: T7 i0 U7 z: t
: R6 T( p! U# j) s' R7 ]
                .default_trigger = "default-on",
; A. B: G, X+ q5 I7 Y. Z! F% o- ?8 U/ k0 O
        },
2 ]6 p# I+ K8 ~; n4 c2 m( b6 M8 A, K. S2 W
        {
6 t- P6 Q* z+ o0 L  t
& M9 X0 v/ e' O1 l7 V& B                .active_low = 0," a& }  Z* Q9 R, p

; E# a7 k2 ^1 c) i$ x# Z( q0 Z                .gpio = DA850_USER_LED3,) Z. z! u# H" a" P9 ]
5 w# ]% Y9 q3 L" l1 I- p* D
                .name = "user_led3",
  o+ w- W0 f: T" F  a' B
+ ^& b% ?; V, I3 Q3 [6 O                .default_trigger = "default-on",% e# C; w# z8 t
4 g! f) j* O+ n  g5 e
        },% N6 a- }) J1 W
9 s+ O! o  n3 o* F( a9 K
        {; {, @" E2 _9 B: n9 V: b

$ K% g1 v: w; X) q                .active_low = 0,
6 d! z& m7 O) D' g; I' j8 Y$ |- M* G) L, B
                .gpio = DA850_USER_LED4,
: q# j  v- q( N, Y  _3 ]
+ W  N  R; p8 D* H& Y0 g                .name = "user_led4",
% l$ d# F; M: p! s
% }: `7 t  Y& r* ]/ ^                .default_trigger = "default-on",
/ x/ M4 H5 p1 @
' Y. U; a& a: m, ]' c$ O2 x5 c        },
" [; q5 L. j# [% J8 f
* X# R8 G: D  s8 C2 l5 B' L        {
. K8 q$ p; e0 }/ `  U; r1 e. i, [/ g) v. C) z1 G& J  q
                .active_low = 0,
4 S2 ^( z  |( x# l% e0 k
* N% D" k2 m2 _. L; {/ ^" L- v2 K                .gpio = DA850_USER_LED5,
3 R6 l9 X" F  X# X0 e4 q! H0 q0 C" `$ H
                .name = "user_led5",
7 A2 q7 [: w' M4 U* U) G7 o: H' w  P2 Q. o
                .default_trigger = "default-on",
- a+ s) a! {' O6 M
/ l# U. ]3 B, j8 g  i* E        },6 J# X, v  p  J. r

( J8 `$ z, p: W" I};
* s+ V4 Q, T( m, j4 u- k; N$ g: v0 H! B  V
6 @" I5 R) U4 R0 f* u; `5 @: l9 L
; S& a6 }! l8 U2 v& _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  i" |1 ~- r! f/ R  d6 @2 K
! ^, e7 N# T: ~: q9 I3 Z
        .leds = da850_evm_tl_leds,
0 C$ t: r, u4 x) K' o+ |- j# I. p2 g3 n- V& q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- q) t! y. w& O% s0 v4 {9 o) y) E) f& C. p! n- L# ]0 k& v$ F
};$ m9 f9 {. ?! A$ C
+ _7 T6 W. O8 t: U7 Y, P. B, O

+ v4 k8 Y! W% o( e: Q  F$ F( M0 N( B
7 ~2 |6 k2 ]9 D! g5 }* p. ?static void led_dev_release(struct device *dev)2 v) b$ _4 X0 T6 N% q- C

  u. E: n: |6 L# I$ s' G, N{
& S# `5 [1 l1 W
6 H8 x% x) u; [" w# d};
9 W  `! p& `7 A6 N# o% V4 K$ D) E( W/ A
1 j6 R2 Z$ @& {: D- i/ [

7 B0 U6 \8 F/ ?( k( ~& }* Qstatic struct platform_device da850_evm_tl_leds_device = {/ ~/ x# B0 i- O- }  p
  d0 A' D1 q1 U; o! S  R- h& B
        .name                = "leds-gpio",* r6 b7 ], w" l* h* v
9 B2 _$ P4 w/ L1 H& g# q
        .id                = 1,
/ W7 ?6 @' q4 u% c
% l4 k( e5 z* `3 b9 Y* o        .dev = {
# c1 e) x9 e9 L: U9 v1 w0 L+ p% J7 r; J( W$ h; M! J
                .platform_data = &da850_evm_tl_leds_pdata,, r% x% Y+ f& m  f. N

" ?! Q- J9 Q; I0 ^) |' t1 ]/ _5 g                .release = led_dev_release,# Q1 ^! ?0 Q( @& ~% a7 Q# B
8 s- w. n1 s+ o4 |
        }' @: m' D( o+ ?# x9 @1 B& ~
! I: L+ ~) C& }1 @8 y% N: L; g( g
};
' H0 n0 {% s' F  B5 R
; r6 z( n" e/ ^( R  _, B' b% d2 E# B7 }0 U' j$ Q* s
1 V+ W7 C. _1 \8 w! l& S
static int __init led_platform_init(void)* ^* N7 {1 t7 N- J1 I

$ `5 S" O* ]' r5 @1 Q{7 ]! o6 q, Z2 C7 k7 R$ ?
* q5 @4 c4 W' d3 j$ |( i, b
        int ret;; m2 |$ j  a& H' t, P' u

( z! g" ], d: o, S) N; A#if 06 O6 s) o1 x& g3 B* z) p& U
9 T# p  u7 f, e4 M3 ~; h
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 A8 L1 g( w0 U; K( |, t
, _" p3 F9 s% _
        if (ret)
' z7 c+ v0 l5 h+ W; l+ a
. V8 ^6 I7 q5 f& u3 s                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  [9 o' U8 ]% N2 I1 T" a* O

# l. n: M2 A: k                                "%d\n", ret);
# \) I7 J; L. |) g9 j. Z: W/ i
& S( \5 R! O* j' O; D#endif( S! N# y, P2 m4 [) l

# d) q# g) z9 I) Z: A% K7 A. }        ret = platform_device_register(&da850_evm_tl_leds_device);+ R0 A5 P" F2 D( g; y. Z, _

4 G! _4 P2 g7 |* O; z% G        if (ret)
& |) d& c5 r7 n- e" S- I7 I  B9 E) X" w1 _& d/ }! i
                pr_warning("Could not register som GPIO expander LEDS");
0 n) f+ B; {) ]" N
4 o. G0 p4 x, E1 q9 S& l        else
1 v: ?1 n* M" c* W3 f  t
8 u' k: {+ }) @; k3 f3 ^) l! ]                printk(KERN_INFO "LED register sucessful!\n");
1 b# F2 }5 ^/ l3 O+ X) t5 z' o: e+ n. [, y. d& W9 p

4 z* C, T: M1 q! y8 V& e" H. _
7 [& K4 }; P( `7 @2 \+ ?' J        return ret;
" {' S& q. z( K# K- M' r& `
8 q1 p1 J% k. s" w}
+ g) p# P5 l1 o( l  d
$ T# `7 P6 {; b5 p
6 Q8 g5 O& d, u" ]( d5 n4 p
6 p1 F* q: g0 n, r# H+ q5 N, istatic void __exit led_platform_exit(void)/ V" ^- R3 e" A. ]

: E6 U" X( \$ i' ?% e+ i2 l" }9 ]{3 S+ k: o9 l4 g1 }5 W, M

# ~# u. V5 Z6 {) o        platform_device_unregister(&da850_evm_tl_leds_device);. t/ Y2 e3 k/ W7 K* v; r: Q

3 N8 N! X1 ~& W+ Y9 f- X, m1 q
' P0 v4 p! J$ @( s- L! L2 r- R/ u" W4 l0 H( B
        printk(KERN_INFO "LED unregister!\n");
& o5 l, c$ C9 f. Z; Z% J
0 j" |% z, C" O3 H. b; f' O6 H3 |}2 Q7 s2 F0 u) h+ L( b0 E% _

* A+ t6 `4 K3 A$ U4 [# E2 S2 X& f! r" K# U1 V5 c5 R& X2 Y. b

* W4 x7 {# M( a) ~; W& e1 Pmodule_init(led_platform_init);9 T' {# ?$ \& k
- K/ g( [- y" J7 j
module_exit(led_platform_exit);
" k/ g) {& H# s
3 H( q, c  I' z7 J& _1 f% K
/ }  P* y4 p5 @/ u" a/ ~" l, U. A( x4 x: h# U8 S- z4 W
MODULE_DESCRIPTION("Led platform driver");4 h& o% F0 v0 l! x9 K- ^! P
1 `$ [. d% R$ K
MODULE_AUTHOR("Tronlong");3 {; G7 [: L; [3 U3 @. Q% ^

) s7 ~) C' i+ Q5 pMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。# ^4 s( A$ F6 N8 \+ A# Z8 P

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:325 g+ r" ?( m) f1 `5 w
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
- ?- I9 q; s" w8 `+ T ...

2 h9 l5 o) d, ]6 A好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。9 G+ g- d) v7 N; h
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-3 06:04 , Processed in 0.042576 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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