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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 . k: {( r/ }7 t! ?) Y
" ~) p4 v, S" t2 F- T* V
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
/ ^/ q; i3 E0 j1 i& U4 t% u) d+ f! P8 H9 v0 p4 e; k
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?. M/ V5 B- \+ O5 k9 j* b1 {% T
3 z- _# b9 B/ \1 R  r9 x

本帖子中包含更多资源

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

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
) w3 B. L' C% V: U( P+ r0 Vlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

$ d, R! Z8 H4 R. W3 j我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:& X3 Q2 Q" [, b
#include <linux/module.h>6 o+ T2 a& a! @2 d: a2 `* p$ ?

- I$ s9 ~  c. u- Z9 ]#include <linux/kernel.h>
4 z$ }8 X7 F7 `
& P# I" y) `# y: I#include <linux/types.h>
) H" G/ F$ b/ \$ q( l. w/ t- j( x- k
#include <linux/gpio.h>1 g- {% a2 c+ L5 Y+ C: t8 V/ ]
6 I1 P. v& `2 i" p8 g0 l
#include <linux/leds.h>
2 K3 b5 y( n: u9 ^( O4 ?' \5 }0 W# J: Q7 y3 [2 U0 t) d
#include <linux/platform_device.h>
* {  F) e0 v' n+ F( e7 P
+ j2 A2 |9 `. r8 j* w$ L9 x% H; v5 H! V* U! d

, s' c- d' v) H" ]. V6 X: Z! G#include <asm/mach-types.h>( m2 u% I" f0 D3 I1 P; f

2 h+ I8 n4 i) J. S4 e" P#include <asm/mach/arch.h>' f# B8 [2 ]( c3 w

# T, B6 [2 h  T. P7 O) Q) P! U#include <mach/da8xx.h>
5 m# A+ O  `2 w2 F# q; A! u
' h) B2 R3 ]# n5 R, b#include <mach/mux.h>
/ j- R; @- x; o1 P2 @) u, y! L5 A6 E- t3 M" m
3 c: _; p) S  @" n2 @9 K' X( B/ I
# x8 M1 |2 ]" b; r+ D' E
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# g# B' [# k3 R( T& N; Z0 Z+ [0 w: A* d; ]7 n; j) X* _, G
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, `# F, J  d* l; n( R0 A4 p* Z7 _6 u7 f
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 z. t* C) {8 J$ \5 v

! F( |# P) U/ C  T) M: x#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: ^6 ~5 D6 n+ e  k" u- s% j; E9 \9 `* B  `4 J$ P
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
6 Z; X( e" p2 h) Y& h! n$ x2 ?
5 n% H) y0 z2 H#define DA850_USER_LED5 GPIO_TO_PIN(6,13). [3 |+ s7 k$ R7 \( t
9 C+ ^! t  y% G9 E* A; \8 o# ~9 a

4 y& p  M5 A, ]3 q  f" K5 T3 E7 t4 A
/* assign the tl som board LED-GPIOs*/& t1 u) \% X/ y
! y4 d9 s& W0 R
static const short da850_evm_tl_user_led_pins[] = {
7 K% @5 x' T3 V
6 y( W7 G, A' j) E        /* These pins are definition at <mach/mux.h> file */
" c( _, y+ T6 t' v% Y* d7 g% R% I- q9 }4 C4 m, I6 l6 ~) i
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,$ O3 c' u4 A2 t

" N, ?' |( Y& V! L( i" X4 `        -1
5 ^: ^& C- l2 w0 d: x9 t! S6 K1 [3 _7 m) |
};
  C1 l7 M: I$ E3 ?+ w4 F2 _  b* {0 u; @  [
! P' W' e# o" r+ J: p
0 Y0 e: U1 A" S# q
static struct gpio_led da850_evm_tl_leds[] = {7 [) I' i% ^' F. ^7 T- M$ W
3 P0 h3 M( \* h2 z- g: H& a+ v
        {; }' Y/ t3 D2 t7 P$ K

9 N/ D- T) o& `8 x% M" ~( w                .active_low = 0,' L) x4 m# N! C+ y7 `- C) v+ j

; {- T1 F, @. M# s6 }  y6 j: S1 H% s                .gpio = DA850_USER_LED0,
' I4 |% P( ~9 Z3 g9 t" p# X3 d
0 O6 k# J* C: |* S                .name = "user_led0",, o4 b: u8 J, g' E/ R) c# i
, v' K6 I% n5 T2 ?
                .default_trigger = "default-on",7 D. u* w1 C% H# y+ K
5 ], }0 l$ _' d3 K/ Z! g5 ?
        },7 e' T/ f" K. T& r/ s. @
) W& z0 ~% F, B4 a2 P. X
        {
/ k: X! ~$ y! F  m- F7 D4 I  j! G
5 b. G) \/ \" P& Q$ q5 t9 P$ k                .active_low = 0,
+ D( a7 D& U. ]' u- H3 t
$ V; I7 @( V6 U, _                .gpio = DA850_USER_LED1," r) `% M4 f, J  U. J  x4 M

7 c! W: t! P" U& s% s                .name = "user_led1",
% ]3 [  B9 v; F9 r& v
9 k0 P/ Z. M, \, n. t                .default_trigger = "default-on",& m# H  ]" c9 b' F
% p4 @) f' @& x( K2 s
        },( z+ ^8 T) D6 v

( H7 Q1 t4 C' ~) x0 O: g        {1 N6 ]2 m- {- T1 U* z

( p+ U' Y5 x  d2 u* C9 m! f) t3 q! Y                .active_low = 0,
' P9 j, z$ c$ \3 X( E7 K
1 c3 S9 O9 ~+ y. M                .gpio = DA850_USER_LED2,
. Y8 g& M2 g$ J- J1 P& _/ O  g/ g5 H( v" s& h
                .name = "user_led2",* g) @# T# z; j" O/ A; R6 f

: z' v; E. }+ v' m% d                .default_trigger = "default-on",
4 I. w( s2 _" }  }3 H) _9 V
( J+ [, d; w7 }) L        },
5 y+ l. W+ n3 d  E( f/ L" O- I( I) P+ J- F) `
        {
8 z8 I/ y* |8 k9 M' ?) r" ^' U  _, m9 `
                .active_low = 0,& `: d, c, L2 Y: c7 X/ v% `
2 M5 |: c/ M) ?
                .gpio = DA850_USER_LED3,
, z3 s% y2 H4 n- T0 z3 x5 T$ ^4 Y+ J/ e
                .name = "user_led3",2 n7 B! m; \" n' |1 n4 Z$ [4 }0 e
( J2 D- C; H5 m; K9 t$ X
                .default_trigger = "default-on",
: J* u6 H- L. V: J6 H$ W
% Z2 s0 `3 X* p$ [: f' Q        },
2 U. [; T5 s+ \5 I- }' F. R3 q. x5 \/ x' U
        {
3 `, W0 ^) O7 D5 E  b* p9 h6 z( m+ n. p9 v
                .active_low = 0,
6 Z2 ^3 r" |" c' W$ o: H3 e+ |; G$ {/ x" i4 V$ r9 v; u: X4 f
                .gpio = DA850_USER_LED4,
7 t+ i' p/ Y  c0 u" _( p: [. T1 [3 b
                .name = "user_led4",
+ T+ T, |) J  c% j/ ]8 ~  z* w! S4 Y% J8 F! I4 s4 k: ]' {
                .default_trigger = "default-on",
4 M: U9 D1 B! o/ ^) ~6 S' C& T7 {3 x3 V# B
        },# N! x) l/ W! s% T) R
, H5 Y) I8 F$ M: Y* ]- U" ?
        {
5 [. m9 ^5 k( A0 T8 q0 A* ]; \: \+ N3 Y+ a& q% r+ l
                .active_low = 0,
8 W1 s7 [+ b; M: d/ W1 r& S: w" C
                .gpio = DA850_USER_LED5,
8 k' V6 j9 u+ W6 ~: o7 u( k6 z, ]7 u7 y# w) }  z
                .name = "user_led5",
0 `+ ^' M- P! [% B0 m9 A9 s( O! ^/ J/ i8 s: h
                .default_trigger = "default-on",4 k( e# Y/ }8 j3 ?1 M" S
, F; d2 q6 x$ G
        },
7 b4 X$ f3 a9 k% I! J9 s1 ]7 X* z+ S6 E
};
4 [) V4 Z  F# e, A5 J
; C$ g1 N7 K3 m7 R- {$ u+ M5 g9 n3 ^; ~+ h: r. w& b7 `8 \/ E$ i
: n0 b0 \) w9 @( J" ^9 l
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 E  Q" {7 l2 h' c+ H; V# r6 [: U8 j+ G# C

& |1 }* Q. [. j- q        .leds = da850_evm_tl_leds,
" P0 F& Q! }8 g. \. ^/ w
& D! f: b+ L) p# R' O  F2 S5 |        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ {, K& x) _# w4 f- W- ?
* p: G- D1 U7 i/ Q. u
};$ Y* M/ t- [1 H+ Q' D# f+ M% g
' K2 |% ?5 M) C

9 }% f1 b/ [% u* z' X4 A  m' ^. J2 [3 f/ k: L& `
static void led_dev_release(struct device *dev)
! T- Y2 p: x3 s0 l9 F; e6 r$ f
3 |# E5 P6 K  c$ m' T0 e7 N; d{8 l) j: L+ R8 B) t0 O

/ X# {- r7 i% L( i};
: Z+ c2 t8 z1 v7 x9 Z  ?# z8 R, @8 I- w+ T
' n1 S4 f4 g  D7 l- \
% V- f9 X+ i+ I/ v
static struct platform_device da850_evm_tl_leds_device = {
# s) k% j9 J) _: Y% D8 E# R# m  ^! K0 ]! c, e+ ~& `( }  e3 I( k
        .name                = "leds-gpio",5 p# J; O) K0 @) @$ P8 X3 q

/ i' w) B- C$ R0 w, p7 v9 O        .id                = 1,9 T. J8 S; ?) k% U1 m$ s

* X3 L1 z7 O+ v% C( ]        .dev = {; D2 j! u$ a! n+ r1 P7 g
& e4 g( s+ ]& P9 Z; }
                .platform_data = &da850_evm_tl_leds_pdata,5 w' Y! G7 M) `8 C2 I
& i. }7 M7 W/ d3 q, T
                .release = led_dev_release,7 B2 Z: g! i; ~& H7 f, w4 ^

: g& V8 l( S+ r6 A' _        }4 r5 l$ F+ ~. R9 U$ [& K8 E
0 F* _+ u2 z1 O- K4 ~& A5 R- h
};
  z  ?3 H! F( \
6 [2 @( L; C/ X7 q4 V1 N, T: r" ^
  j; I3 p4 t  U; u7 Z. @2 m, G
static int __init led_platform_init(void)
6 k0 p  I) u9 A, s( n) A$ r) d0 e. i0 T, j0 H) {0 B
{& E$ y0 _# ?: L/ [. g% p0 R

3 _- U- }- R9 u3 ]( M  U        int ret;
  N: [+ o$ e  |" D
/ q; z, l5 l$ [! b#if 0
( Z! p' d5 O  K# ]1 c- h, f# d6 g1 j, T% H3 r2 b) C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) @2 a6 f: @, r3 l+ v1 [# p5 S4 L1 q0 B6 H' Z; r
        if (ret)
7 n7 Z* l- s, e! A& L& z7 I
# ]% Y  v6 j9 Z, G/ U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* V! @1 R& H+ ~" V

. j4 K( W  v/ f                                "%d\n", ret);6 W( D, H1 E( A/ W

  {1 W9 X9 x5 f$ M3 G/ G* J#endif
/ c: z8 N8 g/ W  x
# q1 x0 g' n; q7 e, e; I        ret = platform_device_register(&da850_evm_tl_leds_device);
2 L% H, A9 Y1 k5 }7 J. s; }5 D3 z  z1 o+ I! `
        if (ret)+ k; q2 G6 x; W& Q% ]' Z( l! |6 C
& Z$ w5 ?2 J. _* e4 a
                pr_warning("Could not register som GPIO expander LEDS");& V* n, d: I- h5 c

- T2 P+ h- p  B5 C; |        else: q$ @4 L0 C3 j+ ~% R. I0 `

& k# Y' h5 U; X" H) t                printk(KERN_INFO "LED register sucessful!\n");
" q! b* r1 [: M2 q6 X6 S5 C7 W- p1 t7 o0 @, R3 ~

5 p3 {6 D" l: O8 a1 q% Z
* i" Z7 a8 m4 r        return ret;' b  |4 k& y; x6 F5 w

, o% }- [. |/ e; l}
2 @, m1 r  d3 L
  n! T, a/ f! K+ B1 s0 I! T! _& R9 p6 A$ p

2 c. s  s/ M/ W. @2 Cstatic void __exit led_platform_exit(void)
9 e; d) Y, J! r* s" d  Q+ o7 L) n3 u5 l' w' G+ {
{
: }! H% w0 M. z+ r8 G  ^1 @; n2 o
        platform_device_unregister(&da850_evm_tl_leds_device);1 Z- y, f, V( q2 U& o

- a8 F/ x0 o4 O" e& ~* i0 Q/ T+ b  ^! ^, c! G& {" w
" {8 x: H( l7 J/ \
        printk(KERN_INFO "LED unregister!\n");( D: Z$ p# i1 C" u2 F

$ I  `0 p$ i/ b% a8 w8 b+ G4 L" d}
/ e5 W  b9 c( x  y; ?
" D5 [3 r! R; V1 v' f- q3 u9 ~9 x) ]
0 d* @. i6 C9 H4 k. g( [3 R, p  Y) K  u9 b
module_init(led_platform_init);
; h. d' F0 E. l! _& m  b
6 R+ @; y3 L$ ]  ~module_exit(led_platform_exit);
8 K& g$ Q/ `/ Y+ ?: V- l6 t5 I$ `0 F! O
: o6 A- }  E+ p, _" T* m
& Y6 e" }7 J; H1 e1 u
MODULE_DESCRIPTION("Led platform driver");
4 s0 g9 e. t1 R) w* E  x! |6 m* F8 D0 t
MODULE_AUTHOR("Tronlong");! V8 P$ F5 n/ I

3 Q* @8 x6 d( [# b% MMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。3 u# ?0 B2 e! \" e  c4 w1 a

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32% \0 H8 H6 W3 s
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
* t1 ^* K* t: H% T/ }+ W6 c9 J ...

: @& k, h- L$ l! v! B; e( J. s: e7 w好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。2 I- Z& v0 C7 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, 2025-9-7 20:30 , Processed in 0.054978 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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