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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
( s& z# n! U2 V- Q
, o/ ]6 G3 M$ b$ F2 C请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
! i+ K# j: h7 c
. N. c1 R3 j' z) T9 A' J之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?4 h; r+ U1 z* `* ^/ }

+ W3 O) f" M9 e( [$ b+ z4 N: @4 Z

本帖子中包含更多资源

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

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:141 Z5 ^2 ?; F" p* j7 Y" s
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

9 M6 e2 H6 Y: L. e: F我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:1 f/ w  e3 p+ J5 V& q
#include <linux/module.h>% H% F# ^' ?; a8 O7 F9 }. }  G. X

1 N- W! f( m! U% K2 M( l) \#include <linux/kernel.h>
8 b9 E( o% J0 r) h7 U
; D0 m2 K) V! I) b$ |9 M- M$ v#include <linux/types.h>& ]( J  ]1 j' m
, C* d! P% D( b8 V5 r' ]
#include <linux/gpio.h>
5 E/ X* E$ a7 x# O
& X& z- |  ~: l7 P3 F6 g- q8 N#include <linux/leds.h>
- }* f5 G' A7 L. N+ ^  F8 [( Y; M7 u5 I( u" ]1 T
#include <linux/platform_device.h>
! d( r* Z, ]& _* T; ?- |
% a) \" d* t$ {" K7 d4 t1 _% v4 Y0 W4 a
& N' g# i) H& |5 x' U- ~8 S1 S
#include <asm/mach-types.h>
4 J) V3 e! E/ n, p; g3 n6 B8 f( ^) Q- A
#include <asm/mach/arch.h>- a# U2 f& T$ `3 F# ]- f0 |( c% K
3 s* H7 o' o9 Q( l6 U" {4 ?. e
#include <mach/da8xx.h>. [3 \* u$ @/ t) v9 e
& G9 F1 W& s* N8 L: y7 H# c
#include <mach/mux.h>/ ~7 ?( g6 U" T- p2 g& [

' b# ^; F2 d, g- B
" x' I. J4 |" F  f
0 M0 K9 T/ e; N4 Q- W$ F2 b  Q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 B) B+ e9 B; E" P
7 V( ?7 W7 I9 V. h1 Z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& L1 _- o8 o' J' Y& k' Q6 |6 H
6 L( R$ v+ k- \5 k
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)5 \: E; O  P, [8 u
9 V" E0 W- d; c5 W3 _7 j0 V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& m1 P; Q2 ~  j  x7 p
5 k) {. a( g- \! J
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)# p7 i5 H0 V" K+ @& L! C- T7 \4 f

; f5 X. s, ?& b. b) r4 c0 _( b0 J#define DA850_USER_LED5 GPIO_TO_PIN(6,13)! b/ X* l0 P1 \7 y3 w

9 W8 }0 q/ P' R2 K# x& j# w4 i6 h6 F* H& t" K9 ?% q

; ~2 p, e7 w, q0 }' n/* assign the tl som board LED-GPIOs*/
! ?$ ?  @! n( b; i& }  e; O; C! b6 [+ h, u( \, Q& V" p  u3 A
static const short da850_evm_tl_user_led_pins[] = {
" ]6 q, r  f0 ^- K+ |2 _
/ C  @2 g& @6 t. P+ l2 t# x        /* These pins are definition at <mach/mux.h> file */
* m  `  Y% N% D# E6 v! C6 K) D5 D! O. {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,; M; |/ D* E+ ]7 p4 @5 U

; o* ^8 R# _: ?  }8 p        -1
- V& F/ t. k0 S5 X, I% u( C- ^3 ~. {. P
};9 p+ r2 g, C+ b% J5 ?0 m( V

* a1 @' L+ h- c8 V9 Z' g' Q$ D/ p& T0 Q4 e# ^- Y

* o6 R6 G/ M: ^. H; Z% ~: nstatic struct gpio_led da850_evm_tl_leds[] = {
9 L% V1 n! a  R7 F- }# r( o" J
7 M& g4 e8 w# `+ t# x7 s        {
  O0 V+ s- ]2 m. ~7 q& P9 m; w$ U+ M" d
                .active_low = 0,1 _6 H0 X2 p  h  G
9 ~8 t7 p/ x  z8 d9 p5 g4 I7 V
                .gpio = DA850_USER_LED0,
( b$ ?" ^$ n* ?8 k! o" x
9 v: d' Y' U$ P  _, X& e                .name = "user_led0",3 }$ f5 D  [# P0 b
. x; H( u# w; w2 w6 i( A7 Q/ q
                .default_trigger = "default-on",. b8 q" a( G9 x+ k% T
5 _* l3 k4 ]( f; G7 O
        },
. y, ~: ]9 \3 V3 O: ]/ J' i/ D) m0 |3 n8 E8 i/ t( Z
        {
& ?5 U. L) F9 d3 C! \
6 F' D1 k( H) ^- e. U6 [1 p                .active_low = 0,
, {) M2 K: i/ ?! Y
8 n& l" O4 P- ~7 v: M                .gpio = DA850_USER_LED1,
% _" q0 [% X% Z+ t( ]- a7 J' a1 W: a9 j. _. f
                .name = "user_led1",, S5 S5 \; N7 \; {6 E- K9 c
% }: }5 Z; z+ [, c/ m/ K
                .default_trigger = "default-on",
2 x  G; y9 v4 S6 q% s" |- ]3 R) e8 q2 b! W; j
        },
0 L# F; |) Y) f6 P8 z: |% F/ C: B6 Z8 v& ]* ~, z  |0 N
        {! g! p& n/ N8 s: \) F  X# f6 Y
% j" K- S. x3 W, r! ^
                .active_low = 0,# W9 W! E7 H+ D; m% y0 T. `7 ^
1 i% h' [* U$ O! ]1 x* o* r
                .gpio = DA850_USER_LED2,
: k6 k0 c! x0 d- W/ C  S, e" ^% E/ F/ j- `
                .name = "user_led2",
: p. v0 ~9 G1 }  X) W) \' E: @, a/ t/ X: M0 [. l* P) c, p& v
                .default_trigger = "default-on",8 b& n2 g6 G8 B( `1 t: ~; {: J
# n: X4 r' G- ~& v, T- T7 @
        },
5 N4 [: ~/ m" N, D3 ^; p0 X$ C. X4 V9 B
        {1 D, }4 c# k$ I! Z# r2 V) |0 v+ }
0 C& q4 A! y! i+ Y4 \
                .active_low = 0,# E4 F0 g$ r& o" u+ _+ w
( K8 z/ _+ r# |7 c
                .gpio = DA850_USER_LED3,
" J% z2 J% M/ a6 X* q7 v  j- I7 G0 S7 }
                .name = "user_led3",. N2 k3 j- Q/ O8 r2 e0 A4 `" t# F" A3 A
! l' m2 Y, k1 {% E7 _
                .default_trigger = "default-on",) H2 n( ~3 x" A% G! G
' i! d- T7 ^) g
        },
6 V% |2 ~8 a) a8 A/ \- ?
* z, s) m$ G- s( H9 H9 x        {6 z% K7 v' \5 ]
  ]  H+ v) G. V/ G3 X# U/ z
                .active_low = 0,- ?  \/ {. ?3 p" ^

0 k  Z0 P7 Q0 Q. O: v/ D                .gpio = DA850_USER_LED4,$ ?# P3 n9 Z8 Z$ C/ i" ?+ h

6 j  I1 L( c+ P0 E                .name = "user_led4",
* @& V1 ^* }" ^0 t3 L1 E
) r. E& y( z7 h                .default_trigger = "default-on",6 Q. k8 Y1 {5 y7 {" J5 e- L3 n. A
. m; o- x) Q" O
        },+ K: E7 d+ L, u
7 F6 m2 e" ]5 |
        {
5 h" o3 @3 v1 f5 W' j; P% ^' h. F( D) b2 c% ]% s$ }
                .active_low = 0,4 a9 H0 X; H9 Y) M2 I$ C! \5 m

  w! }& M" r( v                .gpio = DA850_USER_LED5,: {1 H- D8 S' b! I  i- ]4 K

1 ]& H. |' I2 F' n6 {' j6 X% V                .name = "user_led5",
( X, v  }  |7 _8 f' j9 k  m8 _$ |7 B2 ?8 |# y+ W
                .default_trigger = "default-on",
/ i- T! U; @' L6 g) n0 @' z# ?* Y2 e" q5 _- l) N8 W
        },; z" X  w9 w4 Y. q& E3 W, W# t* b

2 T' t+ _& F( X2 w};- A/ J+ |* A0 A/ h! k
1 \1 r2 f2 E/ C0 [: [" g$ {

7 l2 [/ c* g" }2 K
; b6 q5 n0 [5 [5 Pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% r8 e! w4 B4 Q( b7 L* \% C
0 t' s: ^# J; y: w
        .leds = da850_evm_tl_leds,
! {! @2 w* W$ ?$ E* |1 _; s, o' I: D1 U' J# |# i# w" m
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ ^7 }, @. I2 \2 w1 e5 {6 H* x
8 A' l' B: O4 D; ?};# F6 p" s+ Z6 l. G/ B

2 K. U. l1 j! F4 K9 p5 c* j& d: [" \- R) W  c/ i

9 K9 U, a* r% f8 J4 j1 pstatic void led_dev_release(struct device *dev)4 \7 u- [$ A) ]) {
9 K5 J. b& Y' d8 R/ Q7 ~, N
{; P8 T: g7 K, Y. ?8 e  g7 R1 c& n

$ f: J+ l  H1 A1 r& W1 G};& h) ~; j9 m) v* Z
, V. O% I& C7 |3 K

$ Q% l' v. w7 e( b5 [5 @1 s
/ @9 r$ v. I/ K6 w7 N- ustatic struct platform_device da850_evm_tl_leds_device = {  V. n/ O6 T( R! j' |. Q5 \
, o/ ^) Y9 S: p. M( w
        .name                = "leds-gpio",
. {8 j" i2 h# J) E3 W+ Q( o: i' y0 p6 _! s$ `/ `/ x# X
        .id                = 1,
- N4 r1 W7 X) z( O& j0 C
4 \% A) v( U* l4 Z% Y) E8 w        .dev = {; ~. C1 C% @! }) j

$ N0 Q6 @& y9 G" Z( I- `/ n                .platform_data = &da850_evm_tl_leds_pdata,
4 M5 A. i* B3 B! R+ B9 n' R2 O1 V& ^# h; ^
                .release = led_dev_release,
; c- n3 E9 z. J
3 L. Q5 X; X; }0 H: {- M) A% o" u        }( g1 p; W( i1 ?( a4 o7 v

! s* t! |0 f( Y/ N; F* }, Z  U};
9 }, x% L  ?( [% e  X
9 {2 Q$ a( K  F- p) w+ P9 k7 W
' T7 \" h# ~' x6 a  q! `% X* Q8 G9 x- |2 E, @/ r0 ?, C
static int __init led_platform_init(void)5 V$ I/ O. \% f  k
' U2 ?) r' g# D  ^  O
{6 A& \' v* o2 `
' Q$ F. N% z% e/ B
        int ret;
) s$ N+ T4 M; d/ e: X/ E  f1 w3 s+ l: j" J
#if 01 r) G) R3 N3 C3 u. _
: G8 [2 d- p6 |3 ~7 T& }
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( @: }9 w9 W7 a. F% B/ e) _2 h3 X2 U8 Z1 [; u
        if (ret)7 T( Z( _( o) M, W, {# R$ H8 r

6 e4 z/ b. v. f2 W( W                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 T9 H, \  [8 p9 d2 i# d( h
* [# v8 I5 |2 O/ C( ^                                "%d\n", ret);
4 h/ a; ^$ J, w. U. y0 k: o! a8 D% U3 T, x
#endif
1 D& j" A. \0 T2 X, T4 V- g  H8 L
# `$ @+ S5 |. V5 m) a& R        ret = platform_device_register(&da850_evm_tl_leds_device);! G( m5 V6 a1 n: }

: ^1 @7 n# X& f7 G4 o* X" Y        if (ret)
) U: ?$ ?/ y4 l6 ], {& w0 ^% h8 g# }1 j) Z) P- n+ o
                pr_warning("Could not register som GPIO expander LEDS");2 M. k; l1 k& j% P3 j
+ p) r: ?7 O' Z- _9 e" z
        else6 u8 v, p0 P" x$ R' F

5 J! J% g" K* K6 M/ t6 @. P! a                printk(KERN_INFO "LED register sucessful!\n");
5 }" Q" L- Z0 Q$ V) m1 j7 }
5 L0 |3 H6 R" W- L& H' o3 B
+ Y- f; o. Q/ t( P  ^8 d9 c: |/ S+ q. ~! `6 k' f+ n* }
        return ret;; x5 d7 G+ u. V$ j
  ]( k' N+ a5 `# c
}
" J7 h& d1 s" G: T' f: h5 g2 ?" e$ ]. q8 Z4 z& x
- \. e+ G' D* s6 i( Y

+ S0 G) |, L. |9 H; Nstatic void __exit led_platform_exit(void)- k1 p+ u* M7 v: e; c/ o* u

) }! P/ W& R) S$ d; G; M{
6 B* G* |. N  n9 C/ z4 z# F/ Q0 S7 u9 [: n8 ]9 r) h8 K
        platform_device_unregister(&da850_evm_tl_leds_device);0 ~, |7 `& @4 V; c" u7 u, T
. ]! X0 T$ a( l

+ T- ?& ?( P. k  C% H7 V1 L: w
: y2 }( {& \4 @* [. N, ^( q- A+ B- c        printk(KERN_INFO "LED unregister!\n");: M: J5 f# ^7 ?4 I4 z9 o

/ x% J3 Q3 u4 B, K+ W9 Q}5 h5 ~2 Q5 S, R, G: P9 Z
$ K9 g1 T2 `6 ^. T! Q' T$ e7 r3 J

5 l  b  a  L" G8 l5 R6 H
; }- q- y3 l" n- ~7 u6 E' emodule_init(led_platform_init);% u0 K- s8 u# i0 Z! y" u

' A4 \- y  c/ p) X% G. C' jmodule_exit(led_platform_exit);/ z7 P, l- ~: g9 s' X, T4 z  B

; N  z& ^: G$ }( {- \* K4 C2 p0 c* w$ }+ ?) w
% D4 I9 x+ j$ r% U) a
MODULE_DESCRIPTION("Led platform driver");3 ?- l$ D) f' Z! p# [/ g: ]# ~. |
9 Q' ~$ ]  X8 ~. b( C' G3 g
MODULE_AUTHOR("Tronlong");6 L' q; g" n8 c2 ]+ e

# Z6 a. [( D/ G& F# T; z. L% UMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。0 C( c& m5 w) D4 @& f

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
; P- ?: a* c2 V: M7 m您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。6 F* }& K/ T( T
...

, N  }- T$ B& J: i好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。8 W# `4 P  ~) u$ ^% X! z# E
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 22:55 , Processed in 0.048707 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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