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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 & d' J4 g# m% n; ~, m% t
0 ], R: ~( x1 l5 |
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的! C% v$ s, d9 D0 d) s& W# p; z

* t( d: R% {! A" I6 M之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?2 {& y" v; V- b* f9 P  e

+ I  V% S% s$ O9 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
; a2 Q. h2 l3 H# L  elinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
6 X7 i9 [4 p' R, C* L
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
6 n7 L2 ?  p% |' R+ _" m) _5 Y4 w7 j#include <linux/module.h>8 S; c# w# u+ @+ e' [/ g  ~
7 i, Q" D" d# ]; v' ~& d2 U1 y! E/ B
#include <linux/kernel.h>
8 v1 J3 d# M* _
- @5 V* h& S; N8 I( x4 j1 m#include <linux/types.h>
$ X0 ~% o% P% L( N5 i" T  \
/ f9 ~! C1 `& q7 Z( }#include <linux/gpio.h>
! M: u! F6 I9 [/ J
9 U; c# K8 w! Q) N#include <linux/leds.h>
/ \& |# d5 [& _9 o/ q1 V3 v: s/ `* d8 v. F( \
#include <linux/platform_device.h>
/ ^' {$ ?- C1 Z2 t' Q0 o0 D9 @6 q5 l4 p) ~( A
4 @7 }1 _4 R- B6 x6 S! S9 k
# T' K) P  t( v& b8 ]
#include <asm/mach-types.h>) H/ ?& b2 i. }* y! O

# y' s2 X- G; H: e' I#include <asm/mach/arch.h>
0 |2 `8 y, s" b8 A
: e" s0 J5 A3 c" g#include <mach/da8xx.h>
+ S- C: e: w8 O* {0 k" J
* S8 Q: y0 E1 n6 K5 _#include <mach/mux.h>( k9 o* a/ ?2 K. R  o: V" \

; h/ b, n2 H4 K+ _0 f! ?' N/ b' o/ q

3 `5 p: }% i. f  t! R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# A5 c! r4 D0 a  r& H6 `

# i* Q8 m2 ~3 @' d' M# q4 o#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& n% C9 C; e% r& Q+ j$ F" P$ H7 g& m/ Q) Y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 P2 W4 d' {) O( s# y" @8 q$ n

* I: l1 b0 S0 K+ ?5 ^#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): e+ |- S  O; Q, u% o
* `$ y7 A5 G) o. w) o
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)) a- \* k. P8 }2 @& Z+ y
9 b. Y; T3 K! D# |' U8 k; R( Q8 H0 U
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)3 ~$ |1 K0 D  m
1 u& b! v. P" Y" D" Y8 L

' U# R8 ?$ S- T. z
+ ^) U& Z9 Z7 n5 l# G/* assign the tl som board LED-GPIOs*/* q$ `- C; A- J6 H
3 f& g+ Y4 Q# H1 u
static const short da850_evm_tl_user_led_pins[] = {) g. s9 ~5 F. [9 ]
  M  ^0 ^5 E0 |1 W* u
        /* These pins are definition at <mach/mux.h> file */
% j6 S3 B3 ~- g% I6 B( X; f8 X
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,+ g5 J$ Y/ Y- N5 _6 \! ]4 u" c
1 J3 P" I) k* `9 l6 d1 Z/ X
        -1
3 r, H! [; d2 J* `; e5 B) U- V! i" n5 O9 ]- J& S" \
};. l$ X! _: B1 R" Y  Z" g! t; C" ^

# V& D+ r, Y7 A5 n1 B* Y7 L
7 K( O8 j; r' @- T/ l/ u; m. @0 ]& V3 j1 L, B
static struct gpio_led da850_evm_tl_leds[] = {
0 E4 x0 o. J# _7 N9 T
" d5 l) |$ n4 `: M, [# x9 E        {, G5 t/ S* ], [0 J4 X% K6 k
, e5 Q2 c, u  l/ s" Y
                .active_low = 0,
, d8 d# B& V4 U" ~" \
0 U) F* p! t7 p/ C/ {/ O/ a                .gpio = DA850_USER_LED0,
8 S' Z% w6 u7 S7 `* v' T& `" J' N, K" G& o5 `7 m* A
                .name = "user_led0",
& H% q4 ~3 H! c( I' [: B- c) n% S% }9 w+ ]4 R
                .default_trigger = "default-on",
9 ?: ~  z) Q) f/ Q8 ^, j/ R& Q5 q6 c% D) D5 s5 k
        },
$ m8 ~! ]5 \( ^9 a2 n: @0 A1 J! [  l3 R5 N
        {
% B4 Q  ?0 G) k9 C) N, j
! T" q* \- Y! P1 z) Q                .active_low = 0,7 E" N$ Y; U+ N0 z

4 H+ G* Z7 d# R  v; J8 D                .gpio = DA850_USER_LED1,4 P! V9 P& [4 C* G

- L9 \) J* F7 k' H                .name = "user_led1",
# Q# {6 X, p9 k, I, ?) |) `2 m' [# p0 l
                .default_trigger = "default-on",: \' _$ a2 @+ d$ P6 f2 Y' F
( G. V7 ?1 }# u
        },
* D- ]$ e5 h8 ?  k2 k4 j7 O( U: t6 x9 t0 k4 j) ^/ l/ K; ?
        {
# w% h) {; s) W; F, N$ f0 J2 s  P, e' F: }( o0 u$ Q
                .active_low = 0,
6 z0 V3 C# ~% o# n% A' D2 [
$ k. ?2 a4 L6 c' L, O" ]                .gpio = DA850_USER_LED2,
9 w, x5 g# R3 W( }4 i. P
/ O: C+ e+ u  ^4 L3 T                .name = "user_led2",0 p* j# I, X8 Z5 X

# l( [" f' l! @- _4 q+ f                .default_trigger = "default-on",  Q+ P2 N* Z" ]% X, g
5 J! J2 i' D$ o
        },
  P7 k- c1 L1 _- }  F$ Q" K5 {
. ]5 B/ o0 V; W        {
  x! p: f  ^  o9 d
4 a+ W+ c& W! v                .active_low = 0,
+ M0 Z8 O. p. I$ ~8 O# ]+ Y$ `3 _/ A8 J! o9 |5 W* p
                .gpio = DA850_USER_LED3,
8 J1 J3 p2 b) k. f. H/ S
. l9 [5 y" n* m) F                .name = "user_led3",0 C, \, h4 f- Y9 X- ~: L2 v4 V

8 J$ R0 ^* ^4 j# k# \2 R% T' h( u1 b                .default_trigger = "default-on",$ A  l0 S  O: e; U
, Z6 }, U! B1 S+ n6 a2 o* D$ k6 K6 }
        },
6 u& d" N% \$ k: {6 G0 I! ]3 u+ i) p5 _% R
        {
! O2 T- d* d% c, C# q1 h' Y
3 a4 K/ z) e  S$ w2 x4 o, S" Y                .active_low = 0,
4 W! Y: j3 G% n. B2 e) q0 }( u+ Q8 [9 l& k1 z
                .gpio = DA850_USER_LED4,
4 l5 k, C9 f: ?* H4 U3 \- c
% v" b1 p$ |6 k# E- p" c! ^                .name = "user_led4",
1 ~0 y: M# r/ T
# W. o* ?8 `+ [. E, T% _                .default_trigger = "default-on",5 z: M% R9 c! b9 _) n8 b/ [3 _

8 p# W6 j. }8 k) h" P" A- @1 y" ]        },# c  d7 Z2 n! ^4 U4 c& L# n

( [$ |, I# z4 Z# f8 y* m        {
6 k8 \# {9 z8 h- I0 I3 j* f" K6 w" r# }: R- [! N+ S& i" Q$ I
                .active_low = 0,2 x+ C! s2 m$ e9 n) s: I

" k. Z$ B" S# E" W4 ?) M* ]                .gpio = DA850_USER_LED5,
$ T; q) |! f  W( T) l0 {/ s6 q7 D' N, N- J
                .name = "user_led5",8 Y7 m: O% r+ c, m
/ z1 r1 O* A% M
                .default_trigger = "default-on",- G/ b0 k# z; g2 G) V
# d0 K+ w7 w$ h6 a# N6 X) l
        },/ D1 ^0 e  s* l

0 d' r& ?. l: K0 f};
2 S; v) T  D' o. j- G* f7 l; ?8 P# {3 O  ~( q" R

0 X! S( t3 m$ E& P+ c; o. t( |5 d4 X  A: z1 D: E2 \, Y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ H# ^) j+ e! k5 N! g3 t3 j' B5 t4 {0 ]& g0 l
        .leds = da850_evm_tl_leds,# h6 q+ R7 m- T6 Y/ l+ v# ~% y
& s2 Y  B' p! i) ^8 m, W2 W
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ H6 o" W+ A2 W4 P: f# z& g" P3 U) x2 D  R2 g# n+ ~
};
2 ~1 N  ~* {+ H' i+ y  ^. a; u' H2 B  x- X/ S3 H, @
* y# h; p, b" D3 |. }0 W( i# y

" x; X+ |2 x5 zstatic void led_dev_release(struct device *dev)! X4 I/ ^. o& V
! r& r1 z& T: q! r; z
{0 l3 g& s) `# m3 ?  n
; X( s- [* G; g1 s2 l! K$ W
};, _4 a) U, z" E
* a8 y( T7 `+ A- b6 v( e# q
2 h4 Z0 S+ F( I4 E

/ K- _* H" q' ?+ f; G' Istatic struct platform_device da850_evm_tl_leds_device = {" b" q* ~( P% x3 n

* C0 f5 `9 v  O2 w# p# y        .name                = "leds-gpio",9 Y$ r. y- G/ F( V+ C5 u% w1 n

  |" n7 Y" Q% R7 l2 Z  I; M        .id                = 1,
" z+ k# B- o6 f- d  ?( K+ c$ Z$ g8 f6 s! w' {
        .dev = {' e( H  p; ~: k$ R6 ]! m* ]

% `" d; k+ z5 g. a0 S" X/ i9 C                .platform_data = &da850_evm_tl_leds_pdata,9 @& X. f3 k/ c  ]8 I
. E" ^/ i+ K. A; d& y
                .release = led_dev_release,
0 ^$ s" f$ J+ m' V7 c' \
7 y; M# [+ p2 t( `/ V        }
3 \! ~. D% [3 y0 l0 O9 p
' u% R1 G9 j" w* }! J};
% {, p. t3 G; W, y7 M: R
( e& I  u; v, k4 P
. r, n1 ?% P$ S( B) K6 s
8 W, n! N# o1 O" W) l7 L3 ^6 G3 o! \static int __init led_platform_init(void)
& t& {8 v; S0 g1 ?' i
$ @9 X! d+ h* H) C{8 ?0 X7 h+ V" s6 x( J6 m

" N: @) r1 O8 c* B( H" T        int ret;
" W( d* c8 L5 [$ W, c/ S( n+ H" Q; ^2 H* r# Y  \# T5 J
#if 0/ M9 x$ R$ G$ L. i- K7 T- y
0 A6 z+ o) m6 u( ]! H% N+ }
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 `2 k6 ?7 @. S9 ^
4 ^+ `: v) Q4 I4 E# N
        if (ret)
* s, f( G1 L' t5 o8 @
% R8 J  }  p/ u! W                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 |1 D! K* v: a5 \/ W
' E( b* [  q* R
                                "%d\n", ret);
0 H0 e9 L8 X2 r  i9 U* `" c( J5 \0 l
( S4 V5 D6 e" Z* ]$ D( Q5 v1 P#endif
4 O& \: i9 C; Z1 @' L- M+ v) N5 |) [/ F' t. @; F2 t) _
        ret = platform_device_register(&da850_evm_tl_leds_device);
0 B" _5 B" G( |7 C* G! {6 y' |( O- n( `7 c, b
        if (ret)
$ q6 }, X4 Y. h  R9 p) H% T5 k5 v  E( L/ p  I& q/ f2 g% h+ ]
                pr_warning("Could not register som GPIO expander LEDS");! `* }) B, v' p4 ^

" @! n; \& }. {- G, h/ [$ {  B        else
6 U6 X2 B6 D& `% W1 v8 Y6 b" a9 e& A8 M% D  y( b
                printk(KERN_INFO "LED register sucessful!\n");
  ~) [6 B+ e- z  B+ r3 k& O
$ b8 ?. H  s0 e6 i7 O! k
( J: V  r$ V: Q: ~$ Z8 A& D, {' Z6 q9 ~
        return ret;) U" R# n# ~& ~7 u6 S( P% z
3 o+ H' f6 W, m* _* Q, H
}" r  Q* y0 F# j9 t3 m
: l' C, f3 w  _+ g% W: h0 f# g

+ c1 _; C( d- l( E  ^. D
- n8 }0 E8 A6 e, D+ G' O7 {- kstatic void __exit led_platform_exit(void)% V+ r0 y7 ]% e4 u+ {

% r6 K0 v1 {6 E' E. f{. d, C3 ~( p# H

  ]; e" X  }, d! b. |4 g        platform_device_unregister(&da850_evm_tl_leds_device);
0 {, K5 I4 \  c! P# ~5 P- i# \1 L: Q" T9 j% r, ?

& n3 h% t8 g% D7 f. W9 [# ]* `: y1 X4 J3 F3 b! c) G& F8 R% @" a
        printk(KERN_INFO "LED unregister!\n");. U6 G# @8 o& q% e

! }5 Y/ ~& E" c) P0 D# i/ S1 C' n}7 a, e% f7 ?" S, ]

# C/ }5 S3 ]0 N! h6 e' U/ k$ z2 d9 q" L5 ^0 f3 M. y

. @6 i5 d- Y/ M( Dmodule_init(led_platform_init);/ z2 H: I. P8 {8 `7 I8 u: v* m
$ J) u0 Z$ [2 H4 _! p; `
module_exit(led_platform_exit);) b8 {. f6 b/ N
9 r' \- b3 E1 k( S: |" N

! d  \9 E- J$ V
8 W8 F2 w  t. c4 Q: iMODULE_DESCRIPTION("Led platform driver");  T- E# }# |# a% v5 z
* l9 e7 d! y' c2 q( \
MODULE_AUTHOR("Tronlong");8 U7 K& o6 R2 Z* k( d# ?

( i1 q/ g' A0 n! E# G- \6 M7 uMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。8 V5 E8 D7 Z+ D2 G' p: K& o

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
+ l! h7 `) f' L8 U" K- u9 {您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。6 _$ _, [$ P6 I' k3 K; z/ T
...

7 A) y! j8 X( V) ~好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
/ Q, E5 [1 R% J6 K# f4 U* s1 `/ g9 z% vhttp://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-7-9 17:45 , Processed in 0.044627 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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