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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
3 A& m  \- W# Y/ v
2 Y- t& ^5 Z, A5 F/ ]; O; s: S请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
, j+ P- p$ F' a8 S6 h
# {6 M0 t7 x% r. g之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?( \/ F0 @' [, P. h6 W5 H

9 d4 e' R* m  Z7 k7 l8 Q- j6 j

本帖子中包含更多资源

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

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:145 P4 A$ M6 M& F# x5 y5 z
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

: |3 t& x: K: t1 C3 ~1 s/ Z- n我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:. I2 N% E2 g: s
#include <linux/module.h>  l% N* `* z5 x5 ?

) X( S' Z; F0 O3 }7 g! `  c#include <linux/kernel.h>8 g# m3 H8 X3 p7 T% B# x9 P
& H0 R7 z5 y* C0 Y, q
#include <linux/types.h>3 N- f/ O/ u4 E( K! e

) v! {0 x: c) s1 ?#include <linux/gpio.h>7 l% `9 f1 Y6 z- _- i
: o) c/ e' G  H
#include <linux/leds.h>
. z& h* w: v$ r& S, e+ L3 Y" v3 U$ d& a6 ^1 w1 H
#include <linux/platform_device.h>* P; U  H: `0 B% K+ k. f

+ c2 q: T) a' Q6 S- L! |% }
* y3 P6 C9 t6 ~7 A# z' \4 @1 `& T' L6 @+ _" |' m
#include <asm/mach-types.h>
% m+ D5 p3 d' t+ R) G0 m4 c1 `1 e( `0 p  }/ q. u
#include <asm/mach/arch.h>& v$ ^. u0 c. \/ X) m( u
: j0 ?+ C) z- J# I- `
#include <mach/da8xx.h>5 g1 t5 p* X4 J$ d
: G4 x: i; h/ q! W: p$ h- t9 J
#include <mach/mux.h>
6 c  K0 J0 \& I  \" M- S
  N+ [+ T$ I; x( O& w9 u: y; J8 l! q3 V, s
' Q4 d& p2 u+ W9 e* m& g
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( W! V+ M7 ?4 x; W! ]) m

: d! T  n* m. w#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( D, O+ n9 |0 M; J8 u2 E# i
, q, M9 J& f' ]6 ^
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 p- a% P9 Y& n) ^
! K2 h: X3 b# b$ P1 L/ O2 q" ^! u: F#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  s9 a0 w/ ^* m4 R8 W

( b6 R( j9 l( l/ N* W#define DA850_USER_LED4 GPIO_TO_PIN(6,12)# W4 H1 w, x7 }

. C( r& b! F1 |+ ?/ H& W#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
! w  Y& y- J7 D8 q2 g1 r' D; P& |% b+ W' }; T) p

4 W+ ^2 S" a$ x' L- F2 X  z8 `" A9 |
/* assign the tl som board LED-GPIOs*/
) u) ]( X# n2 _9 h5 T# ^! R& c8 K# _5 ]1 I! d3 r1 X. I" w+ [
static const short da850_evm_tl_user_led_pins[] = {5 f1 S! u3 ~) R

5 [- k6 m% g: r1 H+ u0 Q' g2 G        /* These pins are definition at <mach/mux.h> file */& j( I7 v( |3 D5 V5 o

" R, C" ?9 w  J( M        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,) R1 N$ v1 Z; b' {4 _' E  r
+ ]% _  T) {2 a+ w7 z! o4 t& [( l1 d
        -1
. F8 L. _1 o7 O
  m1 \% }6 ]; Q};& p! e5 A2 G; b0 j" X
9 H' k' F5 N$ O- \* j

5 t& X' |4 c5 a$ Y: m7 X! t- z/ @& u% l8 g
static struct gpio_led da850_evm_tl_leds[] = {! f" S6 s& r) H6 o
1 C) Q2 J, Q; C7 t, {5 i  |
        {8 _8 b& w. h, b, s" C, \( v. @

) a/ A2 d6 s, r7 I' P                .active_low = 0,5 D- L0 ^" T2 c$ t4 A

# @' n$ K  X3 U/ Z; ~4 t                .gpio = DA850_USER_LED0,6 G4 x6 i- r0 w8 N

/ ?/ D0 q4 Q/ o. l/ u                .name = "user_led0",
" L5 m' j0 C1 y' R
; W4 x  F+ c; O+ R7 z- M                .default_trigger = "default-on",
0 Y' |! z! j2 q4 e; [  u' v$ R" }2 d- v$ |4 Z0 q) J' p
        }," x  ]. M) X* E! H* ]9 Z4 B3 H
1 G# K# j; s! a1 N" G
        {
: S9 }: \) Y2 h6 v5 D& G, L# p6 `5 A  g+ }* {
                .active_low = 0,; G. o, B4 `5 p

) W" o5 T/ j+ T" K                .gpio = DA850_USER_LED1,
0 i7 _. w# H$ n; u. j# |
  M3 `: S+ K3 l4 @4 a8 z                .name = "user_led1"," h7 m: k; q0 \* P6 Z
( J: s  q8 v5 W% u
                .default_trigger = "default-on",/ p) V9 C. w' L" C6 x

" Q1 N% a4 o1 F5 I        },
; D# i$ D* v0 \7 X' Y* a. m9 F# m
; `  G  M+ [" b: q' I        {. O" ~* s( h& M, E

1 x4 s$ g5 M+ N. f) U. @( Q. c                .active_low = 0,, o- S/ r1 X! b6 g, |
  e- h9 P6 i2 \
                .gpio = DA850_USER_LED2,
, ]. h* T' D+ i
: b' x+ j! Y& A1 u' N" H                .name = "user_led2",2 r7 j" b/ A4 t5 Z( T3 w: r

. S6 ]& f' N6 o                .default_trigger = "default-on",
9 Q: G. U) z! N# D( M# ]; E9 ]6 n  A/ p+ V
        },
7 r: o$ O& l2 u* F( o: m. V. f; r( @( C
        {
8 [' v( ~7 x- [0 y& q, B
8 A' i: l5 b* d/ m+ j                .active_low = 0,8 s  \+ T% ]3 I; [

6 C7 v# G2 ^0 W- I5 W' Y) ~                .gpio = DA850_USER_LED3,( W6 v: f. w0 u3 P1 k0 z
0 D1 m! K7 _& l  b
                .name = "user_led3",& E. L% G1 J7 S& s: b( T' P
' l. l# N6 d" L. l$ t% ]1 Q
                .default_trigger = "default-on",5 q! @0 {2 G# ?4 Z! [, z

0 @& e! m; }: d& d* y4 y        },
" a. r3 x  _2 I; @0 D. o9 S
, n3 R& J$ e1 o3 N        {2 ^! y' `. P( _8 A9 F

/ B; N0 Z% t' m                .active_low = 0,
& b0 i  f6 h$ }- I4 W9 }5 M% W$ x1 b$ q4 w! T
                .gpio = DA850_USER_LED4,% M& r, E, j# g7 P2 \' G
- _7 w, |+ C  Y' H
                .name = "user_led4",. g/ U" B* ^6 A4 s

" x2 a+ B3 S+ `  D7 k8 Z                .default_trigger = "default-on",- R3 ~7 _/ C; j$ b8 _. y7 ^+ j
% h. \& L  U& i% s1 e) M: ~3 Y( X" P
        },
& k( O7 r% T5 W, H8 J6 Q+ G! O) \5 C/ h, T, o% u
        {
3 P- ^; o: A. k
( W5 {# l# H- m4 [, ~+ ?; K. }) l  P                .active_low = 0,
+ c% U0 W  A0 ?% |
  S/ @: T, l0 W" h! R1 _( V- \& ?                .gpio = DA850_USER_LED5,
5 v, m: K1 d0 h1 n% i: I
7 ]$ y, e8 E- T                .name = "user_led5",
" M* G5 ?3 C- u3 k5 K
+ p, N: G0 P; l. K4 r                .default_trigger = "default-on",
4 [8 ~1 @" _/ q8 Y, J$ k( f
0 K8 Y$ @7 y, {& Y# ~4 E        },
* O/ l0 a% J. P% e% R& T. C
- |; X  ?4 W; U8 W};3 B6 J. c* ^" c$ A6 Y) N

' s: A& g; @5 K  Z
0 L# c! Z( |/ w1 z% U& X( s1 C
1 b) v  b$ a! u. lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ A+ _3 q6 V; u! M7 E
7 Z/ k4 c" ]9 d$ R0 c
        .leds = da850_evm_tl_leds,. z' j" C' P% U

) I' e9 y5 _) [; K* B5 t) n5 A- F7 |        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& V" \. |4 j, y7 o
/ q; w2 ~' k2 V  d& A
};1 T& Z) P2 @2 R5 d  T7 \2 V

1 ]' d) |, W$ L5 Z" N
/ S2 W9 }& o! q" p6 e0 E0 G" y' q) k% ?  x8 |
static void led_dev_release(struct device *dev)
) \( h! s) w2 C: k5 w  c! I: J3 ]9 l, J( o4 {9 |
{9 F; L8 o8 g) _4 s8 V

* p7 G8 J* X. B! I, j2 d& d};
" s/ \% F1 s# y0 I7 I5 n; Y+ [) u. x. Y' y
* y! u: P$ W/ O' Z8 ^

6 ?9 e& v- U% C/ a2 j1 u  o" T* _static struct platform_device da850_evm_tl_leds_device = {- c* }' w' M: ~# ^  R3 l- m% t

, F9 U6 U' L* \7 K- ^        .name                = "leds-gpio",
9 F, t6 m; Y, N
/ W, P: a: s$ N* n1 @# N        .id                = 1,( X* q  o: j3 c% V; q& J) w1 p
. u4 F* x2 j. e; Y0 K, s
        .dev = {* r" L* M4 g4 _
7 |- M* W5 O! K1 P6 }
                .platform_data = &da850_evm_tl_leds_pdata,* o5 `: @. S0 f1 t0 [
$ ~' T5 h4 b! C" Y  v
                .release = led_dev_release,
- P, z! I! ~. I" m; P- x. }. ~- Q, ]) i, }5 g" n
        }5 R/ l- r8 W7 i  ?

% ~' \7 a* s8 W4 O" `! X, u  Q) q};/ P- z1 ^) H9 ]3 R% |

0 d, G- @* h$ q4 q
: r* u% T' i: ?
) G& D3 `& P- A; Q6 u/ Tstatic int __init led_platform_init(void)
7 |5 H! A: k! q1 L
9 C5 a' U+ b# H8 f# e- ~- V{
$ ?3 p8 I" }8 g( Y
/ g. ?$ t: L  R: v        int ret;! t" m; f/ r0 Q2 n/ p2 J! e" ]
, K" F+ e! ]* x/ }3 V. H
#if 0
+ {, G$ Q2 _% C! B# w
/ K! m# D. y7 D$ o6 y+ s& I; c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 n0 J& P6 Y  p. @& M8 k
1 w' b$ M" X1 j: ]+ u
        if (ret)% r' D9 q7 V$ ?( |. @
( u7 @! I( @1 N
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ q1 L  Y4 s# g% C3 r  R& s

: z6 ^; c: |$ B( z                                "%d\n", ret);5 v/ |$ r6 o$ f! ]# t

- a# S1 n6 }" D#endif2 O8 h% w# l# ]5 b$ g; Z
/ |6 H( z8 p/ B4 y
        ret = platform_device_register(&da850_evm_tl_leds_device);
+ _& f2 Q3 e! V+ u5 t
$ C0 }0 l- V# U  d$ _7 @        if (ret)8 K. ]! X. `  s0 q8 N9 T

0 U! @: ^- k% [7 i0 s- @                pr_warning("Could not register som GPIO expander LEDS");
: P1 b! u; @4 X% j! N$ F3 J' ?2 A1 N4 R4 U9 X& j" D3 m/ q/ w, i
        else+ h3 b$ |7 ?! ?) V0 w, v  @

6 M; g* D/ m/ T  b' T# r. a                printk(KERN_INFO "LED register sucessful!\n");
; ^% X4 o) A" |- S% B8 |9 {2 V
3 R8 ?' d$ N6 D5 z
( X0 k  l) @# d
        return ret;
! X: P/ H+ H' \% S# ^- R# N: d6 g) o6 q/ g
}
" J$ x9 U5 d, ?; a4 [6 i0 F) \% Y6 b/ v3 J# `* S
" E" |5 S# E4 F. q( p6 H

7 ]# i6 |6 k7 r. [* @! F7 n# g! gstatic void __exit led_platform_exit(void)% C1 D" y# q  x+ X* h( X+ @

; ~: v- V. ?, a( V- t# S{
; G. L4 D5 @6 H4 k8 r4 F8 ?7 [! ?% a9 N0 L* }  ]
        platform_device_unregister(&da850_evm_tl_leds_device);; [0 f. y/ ]+ ^# X" x

, Y  K4 q0 j$ w2 H! q; ~* M% _
0 K# R5 d0 t7 N! M( r. K% D% O4 Q  ?* `8 l4 F
        printk(KERN_INFO "LED unregister!\n");  C1 a6 R4 z0 ^3 g6 Y

5 C/ e) K" s7 g}) u) R2 C- R' N( K- Z
3 C9 @1 U5 }0 \8 u* o

+ U0 N. D1 _2 F! e4 p$ V$ N$ f" g) A5 _( E) Y! k
module_init(led_platform_init);$ c3 Y* Q7 T# O# q- T" J

( W! C6 n& P) i: n8 L( X$ z0 s, i/ fmodule_exit(led_platform_exit);5 [% E. Q, {- c* H5 @
7 x+ _- j5 l3 R7 [$ O" l
$ @8 z/ {0 x4 h0 E8 G% F$ n
! U& y! y3 k1 d% d  D
MODULE_DESCRIPTION("Led platform driver");
. C# Z- a) Z+ h9 A4 M- X3 F- I% k
% t' d" r  E+ w# _) a0 x; D( D  VMODULE_AUTHOR("Tronlong");9 \- I0 a0 m" Z5 g: {5 I/ ^
8 V; K; d: E4 i& m+ j0 f1 c
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
8 W+ i& P* U2 `* R

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32' l5 }/ Q& U/ D- j
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
6 @$ }6 Q6 P0 J# }8 w+ K5 E5 S ...

+ ?  _& b; H" q! k# |) \' N1 m, V8 z好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。- o- f4 C0 u' X, B
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-1-15 22:37 , Processed in 0.052747 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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