eclipse软件仿真操作
1.编写程序代码(以SDRAM为例)
1.1 编写head.s汇编文件
- .equ SDRAM_BASE, 0x30000000
- .equ MEM_CTL_BASE, 0x48000000
- .text
- .global _start
- _start:
- bl disable_watch_dog
- bl memsetup
- bl copy_steppingstone_to_sdram
- ldr pc,=on_sdram
- on_sdram:
- ldr sp,=0x34000000
- bl main
- halt_loop:
- b halt_loop
- disable_watch_dog:
- mov r1,#0x53000000
- mov r2,#0x00
- str r2,[r1]
- mov pc,lr
- copy_steppingstone_to_sdram:
- mov r1,#0x00
- ldr r2,=SDRAM_BASE
- mov r3,#*
- :
- ldr r4,[r1],#
- str r4,[r2],#
- cmp r1,r3
- bne 1b
- mov pc,lr
- memsetup:
- mov r1,#MEM_CTL_BASE
- adrl r2,mem_cfg_val
- add r3,r1,#
- :
- ldr r4,[r2],#
- ldr r4,[r1],#
- cmp r1,r3
- bne 1b
- mov pc,lr
- .align
- mem_cfg_val:
- .long 0x22011110 @BWSCON
- .long 0x00000700 @BANKCON0
- .long 0x00000700 @BANKCON1
- .long 0x00000700 @BANKCON2
- .long 0x00000700 @BANKCON3
- .long 0x00000700 @BANKCON4
- .long 0x00000700 @BANKCON5
- .long 0x00018005 @BANKCON6
- .long 0x00018005 @BANKCON7
- .long 0x008C07A3 @REFRESH
- .long 0x000000B1 @BANKSIZE
- .long 0x00000030 @MRSRB6
- .long 0x00000030 @MRSRB7
1.2 编写led.c C程序文件
- #define GPBCON *((volatile unsigned long*)0x56000010)
- #define GPBDAT *((volatile unsigned long*)0x56000014)
- int main()
- {
- GPBCON=0x00000400;
- GPBDAT=0x00000000;
- return ;
- }
1.3 编写makefile文件
- all:head.o led.o
- arm-linux-ld -Ttext 0x30000000 led.o head.o -o sdram.elf
- arm-linux-objcopy -O binary -S sdram.elf sdram.bin
- arm-linux-objdump -D -m arm sdram.elf > sdram.dis
- head.o:head.s
- arm-linux-gcc -g -c head.s
- led.o:led.c
- arm-linux-gcc -g -c led.c
- clean:
- rm -f sdram.dis sdram.bin sdram.elf *.o
注:必须用all否则编译会报错
2.编译
打开eclipse->project->build all 没有错误可以进行下一步
3.连接JLink
- dongry@d-linux:~$ cd arm-tools
- dongry@d-linux:~/arm-tools$ ls
- ARM-tools
- dongry@d-linux:~/arm-tools$ cd ARM-tools
- dongry@d-linux:~/arm-tools/ARM-tools$ ls
- arm-linux-gcc-4.3.2.tgz eclipse-cpp-helios-SR2-linux-gtk.tar.gz
- arm-linux-gdb-7.5 JLink_Linux_V434a
- dnw JLink_Linux_V434a.tgz
- dnw_usb.ko
- dongry@d-linux:~/arm-tools/ARM-tools$ cd JLink_Linux_V434a
- dongry@d-linux:~/arm-tools/ARM-tools/JLink_Linux_V434a$ ls
- 45-jlink.rules JLinkGDBServer libjlinkarm.so.4.34.1 start
- JLinkExe libjlinkarm.so. README
- dongry@d-linux:~/arm-tools/ARM-tools/JLink_Linux_V434a$ ./JLinkGDBServer //运行JLink
- SEGGER J-Link GDB Server V4.34a
- JLinkARM.dll V4.34a (DLL compiled Aug ::)
4.配置eclipse
虫子->debug configureation->双击Zylin Embedded debug(Native)->单击New_configuration
配置1:main(添加.elf文件)
配置2:debugger
配置3:command(复制粘贴初始化脚本)
eclipse软件仿真操作的更多相关文章
- STM32软件仿真的一个注意点
最近才做的板子由于自己的粗心把串口线搞反了,还好只有两条,飞线解决,而且现在还只是样板,但是还是应该引以为戒,以后做硬件一定要谨慎. 今天同事出差把CAN分析仪拿走了,本来在开发板上调试好的程序不知为 ...
- 单片机Keil软件仿真与调试技巧
一.引言 单片机软件开发过程中,软件调试遇到的各种问题常令初学者感到不知所措.实际上.各种仿真开发软件的程序调试基本方法和技巧大同小异,掌握正确的程序调试基本技巧.对于排查这些程序错误问题可以起到举一 ...
- STM32 PWM的输出与Keil软件仿真
导读:PWM(Pulse Width Modulation)控制——脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值). PWM控制技术在逆变电路中应用最广,应用 ...
- 数字IC设计入门必备——VIM自定义模板调用与VCS基本仿真操作示例
一.前言 毕业论文答辩结束,闲下来写篇文章.芯片研发人员都在Linux系统下借助各种EDA工具和代码语言完成工作,因此提高代码开发效率,熟练运用开发工具是十分必要的.本文讲述VIM编辑神器的veril ...
- 用Excel做出比肩任务管理软件的操作技巧
用Excel做出比肩任务管理软件的操作技巧 在项目管理中,网上有各种各样的工具可以选择,到底用哪个,曾一度困扰着我.我是一个有轻度强迫症的人,总是喜欢试用各种各样的系统,以比较他们之间的不同,试图选择 ...
- stm32 MDK5软件仿真之查看io口输出
软件MDK5 stm32的pack 打开MDK,添加工程 一.首先找到Project的Options选项,里面的Debug选为Use Simulator,也就是选择软件仿真. 然后再Logic ...
- Uvision5不能进行软件仿真
Uvision5不能进行软件仿真不能进行软件仿真,报错: error 65: access violation at 0x40021000 : no 'read' permission(软件仿真出错) ...
- [eclipse] 三个操作技巧
[eclipse] 三个操作技巧 1.快捷键Ctrl+Shift+i:Debug调试中直接获取方法的返回值 在下图代码中,想知道getHost(),则在调试时运行完该句代码后,选中"urlU ...
- 1.Maven+SpringMVC+Eclipse软件安装配置,Maven报插件错误,Eclipse总是卡死的解决办法,导入一个maven工程后 一直显示importing maven project
使用Maven+SpringMVC+Eclipse软件安装配置过程中的问题: 1.Eclipse总是卡死的解决办法: 一:内存不足所以会卡死,配置一下eclipse.ini修改这几个值就好了-X ...
随机推荐
- Go语言基础之数据类型
Go语言基础之数据类型 Go语言中有丰富的数据类型,除了基本的整型.浮点型.布尔型.字符串外,还有数组.切片.结构体.函数.map.通道(channel)等.Go 语言的基本类型和其他语言大同小异. ...
- PHP(javascript基础)
js浏览器的脚本语言js的基础语法和 . js Dom操作写法分类1.行内(内联)写在标签里面,以属性的形式表现,属性名是“事件属性名” 例如:<button onClick="js代 ...
- Laravel开发采坑系列问题
2017年12月22日17:40:03 不定时更新 版本5.4.X 一下是可能会遇到的坑 1,必须的写路由转发才能访问控制器,当然你可以自动路由访问,但是需要些匹配规则,其实还是转发了 好多人讨论过自 ...
- 创业维艰-->>书摘+乱七八糟
我把我的思路告诉了比尔:在不破产的情况下, 退出云计算服务的唯一办法是提高销售额, 因为即“即使我们将所有员工全部辞掉,如果销售额无法实现大幅增长的话, 基础设施成本依然会把我们逼上绝路.我进一步解释 ...
- nginx笔记 安装nginx 配置 反向代理 多虚拟主机
1,检测linux上是否 通过yum安装了nginxrpm -qi nginx 2.安装nginx之前的依赖包yum install gcc patch libffi-devel python- ...
- PTA 复数四则运算
本题要求编写程序,计算2个复数的和.差.积.商. 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部.题目保证C2不为0. 输出格式 ...
- jQuery 学习笔记(3)(内容选择器、attr方法、prop方法,类的操作)
内容选择器: 1.$("div:empty"): 空的div元素 2.$("div:parent"): 非空div元素 3.$("div:contai ...
- word文档发布至博客wordpress网站系统
今天ytkah接到一个需求:将word文档发布到wordpress网站上,因为客户那边习惯用word来编辑文章,想直接将内容导入到wp网站中,其实 Word 已经提供了这样的功能,并且能够保留 Wor ...
- mysql插入数据会变中文
db.url=jdbc:mysql://192.168.0.149:3306/pack_platform_dev?useUnicode=true&characterEncoding=utf-8 ...
- Mybatis经常被问到的面试题
1. #{}和${}的区别是什么? #{}是预编译处理,${}是字符串替换. Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值: ...