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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 0 H# p& ?( M! z& T& s$ g
0 C, R4 L  @$ ^6 w
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
1 r# R- e, R: N3 y: F! i. X( O  b( E. \7 L7 r  p1 J* f/ L$ a
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?& ^; c& Z1 w5 Z. m
+ @/ F- y! D  E( \( ]% u7 R

本帖子中包含更多资源

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

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% c2 C7 W: E* s( l) l( U* t+ }
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
3 b" j5 j' i" m& ?
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
/ `9 K/ P  N7 ~: `6 ^* N7 c6 l#include <linux/module.h>' w2 D( X# v) _$ ]: c6 a- m  M
6 A+ u3 S0 g; i. ~/ {! O% H
#include <linux/kernel.h>0 j" i$ w3 j3 I( k5 a2 d( e* ~$ K

; f2 a7 c. [' Y#include <linux/types.h>3 u) n+ d8 z; g
* G/ }4 l# Q' y/ O3 U
#include <linux/gpio.h>' c0 J8 b1 R; A# D3 K0 t
8 p1 s8 N- V* ?$ F/ n. C
#include <linux/leds.h>6 b$ q3 O9 E7 Y, ~& x

, j1 u$ v9 I1 {3 j6 O- g& o2 w9 m#include <linux/platform_device.h>
9 V' F& }/ @" m8 y( u3 }  c5 N' o' e: J. R+ j/ {

( b% W% n* ?6 N3 j( C9 u* I! l4 E; z* u- L
#include <asm/mach-types.h>
. }" k8 ?6 `% C7 Y" T* c, z" Y: I$ J; R2 ~
#include <asm/mach/arch.h>
2 o6 X( [5 T7 ~
' c$ x% J. u9 ~& O$ T& T: g#include <mach/da8xx.h>
) z% F- V( e8 c, d+ @. ?% `
# p, D$ u& V/ B; h' `8 b4 N! N  g#include <mach/mux.h>
9 N' I4 H( a7 o/ H, B4 z* p4 a
/ l$ `" H* d. ?; S' d6 r; l9 t' Q! U& m/ N0 `  W, Y

# W: z- j2 P2 d, T% ?& ~#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ D* ~7 F8 I' x
* a: r7 }. P# O( d/ q5 _
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ Y, d7 E/ o2 H8 F! O4 i( E4 j

4 b% _: S& f" u; m7 l* ?* r#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 m  |0 o/ ?( x8 x9 B3 |& ?3 \0 K: A1 ]7 ~3 i& G& E& {1 B6 u
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# V$ }8 ]: c9 T5 Z8 j+ t9 N

  p/ L! p* {: u9 D2 U$ j#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
  t% [6 s* Z4 n" `9 ?$ p* N  x! M- B, f# n# Q
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
; z5 b8 g6 Z  ?; ^4 }- o4 T% l$ u9 y. j* O. [, D* h' N

$ l  m2 r4 x) I- X' f0 x
* k5 k8 N1 y/ A% f: o/* assign the tl som board LED-GPIOs*/
" Y0 [  v; f, I, @" B" v* q6 t9 C
2 }% a4 a' P  {) `( Istatic const short da850_evm_tl_user_led_pins[] = {0 A) k9 R: {4 O. O: |! ?

# @. ~: r5 h& S# D0 i        /* These pins are definition at <mach/mux.h> file */
+ k3 z. h: w* d3 X6 b5 j4 u; s$ ?- ^
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
: c4 w- O6 S" |/ l. F
# v) z/ O. \) t% v: {1 K- V* A) {5 P8 F        -1; ~% _, b, k8 V3 z9 h* I% x
" S; b- a1 p0 X; I1 |
};& c& ^) k) Q3 W2 d( F% L5 B

1 ^; \7 ?( D! i- d( h
& a. ^( H& a' @% S2 A& ~+ }
' L9 _! I9 J: a! q% Qstatic struct gpio_led da850_evm_tl_leds[] = {3 }0 T, |: r: h# f

3 q) I$ P7 m& e; `5 G# s2 d* E, p        {
, [9 \5 G- _$ ?; H# a$ Y2 [  l1 h8 a& n, g. F% J
                .active_low = 0,3 @1 b6 y! l' J4 _9 T" }) @

  k; T1 b! |1 v. |2 i8 l. _- {: t                .gpio = DA850_USER_LED0,
) ^; L+ G5 g" a1 X/ k& ^' s; J' l
                .name = "user_led0",
$ |5 L  Q% P( C
7 g1 p3 U. g, `8 d8 S! T/ ~. e                .default_trigger = "default-on",
6 {; \7 E5 n+ y9 G- Y8 z: C) Z. S8 v& ]  V  J& \
        },
$ `% b* W9 K  y  ?) b! i  ?. g! s' N- Q2 P' l
        {
; }# f& j9 W$ z4 F$ p& H! l# n" r
" U( m* N. P9 P4 m3 g- e  v, @1 y1 I  \                .active_low = 0,9 S/ |- `, J( I) l

0 E  r+ X0 e2 A7 O0 n% `/ Q                .gpio = DA850_USER_LED1,4 |  e% y5 ]* w. g

8 j: C+ C) h( G& R) k6 }9 G                .name = "user_led1",
! |2 @1 Y' t) W
' Z' T- j7 U* p( E* ^                .default_trigger = "default-on",
( t9 e* n& R% c8 L! C; c; p! u" l5 d+ X1 g0 U' B9 c9 {
        },
& d& b# J+ v+ e) h* V, m3 u& d( b/ ^0 k0 L  o* `0 u
        {$ V. I' [; X8 l9 S+ V. }$ Q
5 L" s4 S/ I  }  H  K0 ~9 V
                .active_low = 0,
' _4 r" _8 N  u
. O* [; o( f% y8 |8 P/ q& `, A                .gpio = DA850_USER_LED2,, `: }) R- I9 N. M9 a
: L( n9 Y+ b4 T7 I: S( j
                .name = "user_led2",9 Z, J$ e) H1 Q$ z* x! A

, ?3 W1 d( A' ~4 v6 \: j                .default_trigger = "default-on",
! \- f3 g9 j  k# t
' L- X3 @8 V/ h3 C) _+ c        },- U! z5 @% i; ~5 {

& }" S9 g; N3 u1 i" F- c  M, ~7 v        {& Y6 x4 \6 X  S- `; m
) t" m7 F  p$ m
                .active_low = 0,+ o: k! v. v8 o! `

5 f! k% q! F# v: i8 y3 S* U                .gpio = DA850_USER_LED3,) V' Z. v  z9 ^0 X* r; j0 g  ~
  J- k: G3 n( u8 H  u
                .name = "user_led3",
# w) v, R# L* h2 O6 W( B3 K) S7 @) ~6 `- I# `6 G9 n
                .default_trigger = "default-on",
" g( z+ c" a) |6 l* z/ f
$ A! k+ h" M& X, g& }        },7 Q6 L' d1 t4 j( O2 g1 [

! A; S8 f, @  s6 C        {/ M$ E: @: u  g) c: L
. F# L) y) @1 x5 n( X5 k
                .active_low = 0,
  I5 \1 @9 ^& p( K: ~! O5 ~5 k& U3 Z/ K3 {5 T6 a
                .gpio = DA850_USER_LED4,
; Q  ]# Y+ {4 ~( {$ l$ A
: o) u) {- r: }4 W% c                .name = "user_led4",$ q1 c4 b% T% x2 K
1 p6 \( Y2 ~2 j/ J/ _
                .default_trigger = "default-on",
; l0 u# a. }+ k6 c2 s' J, M
( Y8 p2 S* c# `8 S) W        },3 s: M6 ^# T0 `, |( l2 a5 W! f

$ d8 o  H$ \7 V9 ^- K% M        {/ |) m" Q# Z6 t: ]) W& f

& q! k# q, e6 S: ^$ n* |7 f" R                .active_low = 0,& f0 ~( l2 m0 B7 i
: \* h8 v1 t% B0 {9 d; r$ M, H
                .gpio = DA850_USER_LED5,
+ \" d( [7 [; S/ n. [& N( d+ ?; l9 ?8 @: T/ F" \
                .name = "user_led5",2 ~7 j1 ]( J9 B5 N/ [+ T. f! B

! X( e; a7 K3 e; r& p, L( T1 M0 ^  H                .default_trigger = "default-on",
7 G0 S: D8 A% f" k6 M$ }2 i5 A
7 y7 _9 U$ b" n4 _. e: t& L, y8 P% U        },( l# X2 L, Z' z4 V/ ]

3 O" ]9 P& [- N# e6 P* Y};( F& T& t/ N1 Y9 C, {8 |  b

! T+ G  X& S. V3 G: m8 x5 X. G, R7 X6 ^6 q1 ]# y! u+ V& X# g9 h

8 I, }" ~  d1 s# ^2 M( Zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! w4 [( z& [) J, w2 p# y4 h# R6 |+ Q) k7 f
        .leds = da850_evm_tl_leds,
0 [& h# }, u" H" Y* c5 M  m$ i% H. A1 c
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. t9 ?' R, p- H( A# z& r8 }% M$ b& ]. }9 {) Z
};
: [( J% B% Z" r6 Y: q6 m+ W7 S% E* ]8 Y5 c0 V$ X' Z
+ n. r7 ?  J  `5 n& a

5 Q* @4 u  o! ]; ustatic void led_dev_release(struct device *dev), g- K  {5 y* W7 h
% a' [, W( e" v7 s: p; A
{
0 E6 R, g* m* f5 M9 G5 S' L
1 q6 k, R0 `* V};  \2 h  s' d/ E% _* j! z
$ P; b& B6 Z  h( c6 ]* L
9 g0 a/ s4 z" _# ~2 t, u

: |% |- d' }* F1 lstatic struct platform_device da850_evm_tl_leds_device = {
* r$ A( e3 S, h' c+ q  K+ L% t" _
) b1 G& \/ R8 g, x1 q        .name                = "leds-gpio",
4 H; Q; e9 b* ^/ u8 t$ j2 J" H. C2 ^0 N1 I! A# u8 B
        .id                = 1,( z' A1 T# f- D3 H
0 o" [% Y3 {/ O1 I$ }& X
        .dev = {: k. V! {" k& p2 _- Z2 F' P

" \# G% h% a9 N                .platform_data = &da850_evm_tl_leds_pdata,. u+ K; z- C; l; @4 y% Q: D; |

, n+ q  F0 r0 }" B# p! U                .release = led_dev_release,* D* T' \+ h/ C; g1 d9 b/ @& @
" z7 J- o$ L/ ?, P, c) m1 V
        }3 S* a" K' o$ A6 p: g& i/ q

) x# q9 _+ c' n3 q7 y2 k};
" o5 ]+ B6 N& G" Z; c( \7 Z* I/ V
8 q6 {. B5 }4 s; R( d; Y) Q  o# v
# s+ i+ }: S% [* Q( ]5 Q
static int __init led_platform_init(void)
4 ?; d( D8 k  r$ z& a, p. n! `1 }7 A' ?
{
. z6 ]1 q7 b3 @# L5 A5 r
5 o! J; d9 _# s0 W# n        int ret;
' P" E4 Q, ]* W5 w
( r0 j) s! M: F( z) w% m. X7 Z#if 0
1 W, r7 _: r2 y* s! X. h! a' V% o
: N" @6 v" g. O6 D) h        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 X8 P2 F: w3 k2 D9 n5 _
4 C6 [6 v& B# C; c" J! C1 \5 V4 W        if (ret)
$ i# k( D+ D- m( d, N: }0 g* Q9 ~7 F5 y, J. l0 O& L
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# P  _% i. P0 {8 h- v- X- D/ r: i7 R6 k  D
                                "%d\n", ret);
& n- R9 S) P$ `! Y; q) B+ U' r- _- H& g
#endif
) r, ^) g7 V8 d( O0 G+ z3 u& f# U: ?: o
        ret = platform_device_register(&da850_evm_tl_leds_device);
; O) \- Q" P5 O- z; u" v, r# l2 N
: A1 m! ?/ r+ S. p! C5 [        if (ret)" }- s) j( V9 @7 G) P7 H/ w
3 E/ @4 i) E  X# y& o
                pr_warning("Could not register som GPIO expander LEDS");
" X( j/ O* n. y/ V9 Q! k! U8 G; G) ?3 Q- T6 i+ L% S5 U
        else( g4 S' G* ?& T$ K
: M8 B# b* J' ]$ n* O) V! c
                printk(KERN_INFO "LED register sucessful!\n");) _7 Q1 d" u7 ]8 P& J5 y4 p
3 E% ]( V) u9 @7 g: }; A
  |0 t# Z; {) {, b3 y( i. v" P
2 y0 H# W, M% P) Q+ A
        return ret;. ?. f2 d, f; l
( [% s; }- e/ n- t# o
}/ y; |: n* ~8 F  j2 W

( ]2 G: _* D$ q5 o% `  f0 p: t
8 E% C# h! E0 o- D, B# C, i( ?& R+ u' @8 w
static void __exit led_platform_exit(void)
; B( ?+ f- d# c" O5 H5 [2 K% f7 N/ @" P  t3 |$ @
{1 U0 I3 W5 j. g8 j' D7 y

- B6 [. O5 A  N5 Q9 x) E& w        platform_device_unregister(&da850_evm_tl_leds_device);
3 B3 n/ k' V. J. B$ I$ U
% r& A2 E  O- V
& M4 k* p' o( q. R$ i
6 z4 @' V+ M- L" A        printk(KERN_INFO "LED unregister!\n");
5 D% }' d1 _  z1 z( S1 X
2 N" m1 d7 S" H. t  J7 x}) ~& ?% n6 @8 W9 ]* B/ _
0 @% o- n% w7 w, ^$ I' x  u- R
; ~( f6 ?# z+ f

+ U1 o% I2 c. l2 S: l- N  t* gmodule_init(led_platform_init);
: ?- W- \; [0 H! D8 H
3 |9 N( `( e7 t7 M0 Xmodule_exit(led_platform_exit);
; a* i" j8 g) N" V; _( U4 Y1 o4 K+ N9 p4 t

/ P' U+ L; B' O5 ]: ~' N! {- T, c- c3 i3 g9 \$ I+ B; j3 o, Z; u
MODULE_DESCRIPTION("Led platform driver");
. p3 Z: N; T% E. R: J& A- n: i0 R# Z! q$ W( R$ @
MODULE_AUTHOR("Tronlong");
- {( {9 c7 K4 J7 v( b' J& f' {# F7 e0 k% R: z* j. }* `
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。; r2 ?" x" ~, b6 H3 Q9 E8 L- ^

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:329 Y0 S) O; l$ P, x. z/ g
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
- b; _; Y: |' a7 z  o6 u ...

8 h5 O3 G- ^# C; X- P1 g% n8 i好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。2 E' X# A' ~4 M9 g: W
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:36 , Processed in 0.045462 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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