1.编写程序代码(以SDRAM为例)

1.1 编写head.s汇编文件

  1. .equ SDRAM_BASE, 0x30000000
  2. .equ MEM_CTL_BASE, 0x48000000
  3.  
  4. .text
  5. .global _start
  6. _start:
  7. bl disable_watch_dog
  8. bl memsetup
  9. bl copy_steppingstone_to_sdram
  10. ldr pc,=on_sdram
  11. on_sdram:
  12. ldr sp,=0x34000000
  13. bl main
  14. halt_loop:
  15. b halt_loop
  16.  
  17. disable_watch_dog:
  18. mov r1,#0x53000000
  19. mov r2,#0x00
  20. str r2,[r1]
  21. mov pc,lr
  22.  
  23. copy_steppingstone_to_sdram:
  24. mov r1,#0x00
  25. ldr r2,=SDRAM_BASE
  26. mov r3,#*
  27. :
  28. ldr r4,[r1],#
  29. str r4,[r2],#
  30. cmp r1,r3
  31. bne 1b
  32. mov pc,lr
  33.  
  34. memsetup:
  35. mov r1,#MEM_CTL_BASE
  36. adrl r2,mem_cfg_val
  37. add r3,r1,#
  38. :
  39. ldr r4,[r2],#
  40. ldr r4,[r1],#
  41. cmp r1,r3
  42. bne 1b
  43. mov pc,lr
  44.  
  45. .align
  46. mem_cfg_val:
  47. .long 0x22011110 @BWSCON
  48. .long 0x00000700 @BANKCON0
  49. .long 0x00000700 @BANKCON1
  50. .long 0x00000700 @BANKCON2
  51. .long 0x00000700 @BANKCON3
  52. .long 0x00000700 @BANKCON4
  53. .long 0x00000700 @BANKCON5
  54. .long 0x00018005 @BANKCON6
  55. .long 0x00018005 @BANKCON7
  56. .long 0x008C07A3 @REFRESH
  57. .long 0x000000B1 @BANKSIZE
  58. .long 0x00000030 @MRSRB6
  59. .long 0x00000030 @MRSRB7

1.2 编写led.c C程序文件

  1. #define GPBCON *((volatile unsigned long*)0x56000010)
  2. #define GPBDAT *((volatile unsigned long*)0x56000014)
  3.  
  4. int main()
  5. {
  6. GPBCON=0x00000400;
  7. GPBDAT=0x00000000;
  8.  
  9. return ;
  10. }

1.3 编写makefile文件

  1. all:head.o led.o
  2. arm-linux-ld -Ttext 0x30000000 led.o head.o -o sdram.elf
  3. arm-linux-objcopy -O binary -S sdram.elf sdram.bin
  4. arm-linux-objdump -D -m arm sdram.elf > sdram.dis
  5. head.o:head.s
  6. arm-linux-gcc -g -c head.s
  7. led.o:led.c
  8. arm-linux-gcc -g -c led.c
  9. clean:
  10. rm -f sdram.dis sdram.bin sdram.elf *.o

注:必须用all否则编译会报错

2.编译

  打开eclipse->project->build all 没有错误可以进行下一步

3.连接JLink

  1. dongry@d-linux:~$ cd arm-tools
  2. dongry@d-linux:~/arm-tools$ ls
  3. ARM-tools
  4. dongry@d-linux:~/arm-tools$ cd ARM-tools
  5. dongry@d-linux:~/arm-tools/ARM-tools$ ls
  6. arm-linux-gcc-4.3.2.tgz eclipse-cpp-helios-SR2-linux-gtk.tar.gz
  7. arm-linux-gdb-7.5 JLink_Linux_V434a
  8. dnw JLink_Linux_V434a.tgz
  9. dnw_usb.ko
  10. dongry@d-linux:~/arm-tools/ARM-tools$ cd JLink_Linux_V434a
  11. dongry@d-linux:~/arm-tools/ARM-tools/JLink_Linux_V434a$ ls
  12. 45-jlink.rules JLinkGDBServer libjlinkarm.so.4.34.1 start
  13. JLinkExe libjlinkarm.so. README
  14. dongry@d-linux:~/arm-tools/ARM-tools/JLink_Linux_V434a$ ./JLinkGDBServer //运行JLink
  15. SEGGER J-Link GDB Server V4.34a
  16.  
  17. 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软件仿真操作的更多相关文章

  1. STM32软件仿真的一个注意点

    最近才做的板子由于自己的粗心把串口线搞反了,还好只有两条,飞线解决,而且现在还只是样板,但是还是应该引以为戒,以后做硬件一定要谨慎. 今天同事出差把CAN分析仪拿走了,本来在开发板上调试好的程序不知为 ...

  2. 单片机Keil软件仿真与调试技巧

    一.引言 单片机软件开发过程中,软件调试遇到的各种问题常令初学者感到不知所措.实际上.各种仿真开发软件的程序调试基本方法和技巧大同小异,掌握正确的程序调试基本技巧.对于排查这些程序错误问题可以起到举一 ...

  3. STM32 PWM的输出与Keil软件仿真

    导读:PWM(Pulse Width Modulation)控制——脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值). PWM控制技术在逆变电路中应用最广,应用 ...

  4. 数字IC设计入门必备——VIM自定义模板调用与VCS基本仿真操作示例

    一.前言 毕业论文答辩结束,闲下来写篇文章.芯片研发人员都在Linux系统下借助各种EDA工具和代码语言完成工作,因此提高代码开发效率,熟练运用开发工具是十分必要的.本文讲述VIM编辑神器的veril ...

  5. 用Excel做出比肩任务管理软件的操作技巧

    用Excel做出比肩任务管理软件的操作技巧 在项目管理中,网上有各种各样的工具可以选择,到底用哪个,曾一度困扰着我.我是一个有轻度强迫症的人,总是喜欢试用各种各样的系统,以比较他们之间的不同,试图选择 ...

  6. stm32 MDK5软件仿真之查看io口输出

    软件MDK5 stm32的pack     打开MDK,添加工程 一.首先找到Project的Options选项,里面的Debug选为Use Simulator,也就是选择软件仿真. 然后再Logic ...

  7. Uvision5不能进行软件仿真

    Uvision5不能进行软件仿真不能进行软件仿真,报错: error 65: access violation at 0x40021000 : no 'read' permission(软件仿真出错) ...

  8. [eclipse] 三个操作技巧

    [eclipse] 三个操作技巧 1.快捷键Ctrl+Shift+i:Debug调试中直接获取方法的返回值 在下图代码中,想知道getHost(),则在调试时运行完该句代码后,选中"urlU ...

  9. 1.Maven+SpringMVC+Eclipse软件安装配置,Maven报插件错误,Eclipse总是卡死的解决办法,导入一个maven工程后 一直显示importing maven project

     使用Maven+SpringMVC+Eclipse软件安装配置过程中的问题: 1.Eclipse总是卡死的解决办法: 一:内存不足所以会卡死,配置一下eclipse.ini修改这几个值就好了-X ...

随机推荐

  1. Go语言基础之数据类型

    Go语言基础之数据类型 Go语言中有丰富的数据类型,除了基本的整型.浮点型.布尔型.字符串外,还有数组.切片.结构体.函数.map.通道(channel)等.Go 语言的基本类型和其他语言大同小异. ...

  2. PHP(javascript基础)

    js浏览器的脚本语言js的基础语法和 . js Dom操作写法分类1.行内(内联)写在标签里面,以属性的形式表现,属性名是“事件属性名” 例如:<button onClick="js代 ...

  3. Laravel开发采坑系列问题

    2017年12月22日17:40:03 不定时更新 版本5.4.X 一下是可能会遇到的坑 1,必须的写路由转发才能访问控制器,当然你可以自动路由访问,但是需要些匹配规则,其实还是转发了 好多人讨论过自 ...

  4. 创业维艰-->>书摘+乱七八糟

    我把我的思路告诉了比尔:在不破产的情况下, 退出云计算服务的唯一办法是提高销售额, 因为即“即使我们将所有员工全部辞掉,如果销售额无法实现大幅增长的话, 基础设施成本依然会把我们逼上绝路.我进一步解释 ...

  5. nginx笔记 安装nginx 配置 反向代理 多虚拟主机

    1,检测linux上是否 通过yum安装了nginxrpm   -qi  nginx 2.安装nginx之前的依赖包yum install gcc patch libffi-devel python- ...

  6. PTA 复数四则运算

    本题要求编写程序,计算2个复数的和.差.积.商. 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部.题目保证C2不为0. 输出格式 ...

  7. jQuery 学习笔记(3)(内容选择器、attr方法、prop方法,类的操作)

    内容选择器: 1.$("div:empty"): 空的div元素 2.$("div:parent"): 非空div元素 3.$("div:contai ...

  8. word文档发布至博客wordpress网站系统

    今天ytkah接到一个需求:将word文档发布到wordpress网站上,因为客户那边习惯用word来编辑文章,想直接将内容导入到wp网站中,其实 Word 已经提供了这样的功能,并且能够保留 Wor ...

  9. mysql插入数据会变中文

    db.url=jdbc:mysql://192.168.0.149:3306/pack_platform_dev?useUnicode=true&characterEncoding=utf-8 ...

  10. Mybatis经常被问到的面试题

    1. #{}和${}的区别是什么? #{}是预编译处理,${}是字符串替换. Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值: ...