【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】

做嵌入式开发,如果有单板并且可以单步调试,那么开发起来还是不复杂的。另外一种,如果没有单板的话,用qemu类似的仿真软件开发也是可以的。就怕有一种情况,qemu无法使用、无法用jtag单步调试、硬件资源短缺、同时大部分又习惯在windows开发,这个时候可以用vc来做。

1、关于汇编

做嵌入式难免需要一些汇编,但是汇编其实很多时候是不需要修改的,所以汇编的部分其实没那么重要。

2、io地址空间

io地址空间大部分是需要与地址直接匹配的,建议将这些地址统一用宏标志,多用相对地址。在vc上面可以用全局变量或者全局buffer来进行替代。

3、变量符号

嵌入式里面会有一些奇怪的符号、变量,如果c中调用,直接在stub函数中定义即可。

4、桩函数

很多嵌入式操作在vc上没有办法实现,比如特殊寄存器的操作,这个时候完全可以用桩函数代替。

5、中断

vc上可以用多个thread来仿真不同的中断。

6、io设备仿真

对于真正需要的io设备,可以自己编写io模拟函数,常用的gpio、串口、sram、flash、串口、硬盘都是可以的。只要仿真的好,vc仿真的设备可以和其他上位机自由交换数据,没有任何问题。

7、字节序、字长

pc默认是小端、字长有32位、64位,这一点尤其需要注意。

8、不支持的关键字

很多嵌入式会扩展c语法,比如会有interrupt之类的关键字,这个时候只要用macro打个桩就可以,这样就不会有stub的影响了。

9、平衡vc和实际环境开发

如果实际修改内容不多,并且大部分测试可以在pc端开发,大部分代码都是可以自己控制的,这个时候使用vc是非常合适的。但是如果修改的代码过多,远远大过带来的收益,这个时候就不主张用vc进行嵌入式开发了。

随想录(vc仿真下的嵌入式开发)相关推荐

  1. windows和linux环境下的嵌入式开发区别

    主机(PC)开发差别: 在windows下写程序 1.--->打开Microsoft Visual C++ 6.0程序 2.--->关闭提示窗口(有的程序不提示) 3.--->fil ...

  2. linux下的嵌入式开发技能(嵌入式工程师必备)

    嵌入式Linux开发从下到上分为:嵌入式硬件开发.嵌入式驱动开发.嵌入式系统开发.嵌入式软件开发. 一.嵌入式硬件开发:熟悉电路等知识,非常熟悉各种常用元器件,掌握模拟电路和数字电路设计的开发能力.熟 ...

  3. Java开发和嵌入式开发该如何选择

    首先,Java开发和嵌入式开发都是目前IT行业内比较常见的开发岗位,也都有大量的从业人员,所以从就业的角度来看,学习Java开发和嵌入式开发都是不错的选择.Java语言的应用领域包括Web开发.And ...

  4. 嵌入式开发人员应该关心机器学习的 5 个理由

    人工智能 (AI) 和机器学习 (ML) 似乎每年越来越多地成为头条新闻.但在大多数情况下,嵌入式开发人员似乎并没有给予太多关注.当然,人工智能有一些非常酷的应用程序.然而,对于实时微控制器开发人员来 ...

  5. 该如何选择Java开发和嵌入式开发

    首先,Java开发和嵌入式开发都是目前IT行业内比较常见的开发岗位,也都有大量的从业人员,所以从就业的角度来看,学习Java开发和嵌入式开发都是不错的选择.Java语言的应用领域包括Web开发.And ...

  6. python嵌入式开发实战_嵌入式Qt实战教程 PDF 高清版

    给大家带来的一篇关于嵌入式相关的电子书资源,介绍了关于嵌入式.Qt实战方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小43.4 MB,陈志发,王苑增编写,目前豆瓣.亚马逊.当当.京东等电 ...

  7. esp32 怎么分配freertos 堆栈大小_嵌入式开发入门-从STM32CudeMX、FreeRtos、Proteu仿真开始...

    系统 嵌入式是什么呢? 嵌入式开发就是指在嵌入式操作系统下进行开发,常用的嵌入式操作系统有FreeRtos,ucos,linux,android等.与单片机开发最大的不同就是裸跑与跑系统的区别.嵌入式 ...

  8. 嵌入式开发模拟器:qemu使用,仿真多种方式启动内核kernel (超详细,tftp/nfs等方式)

    适用于: 想学习嵌入式开发,但又没有购买开发板的情况 开发测试阶段避免繁琐耗时下载到主板 便于调试驱动及内核 与外设关联不大时 环 境: vmare 15 pro ubuntu 18.04 qemu ...

  9. 在ubuntu下设置eclipse开发STM32等嵌入式设备

    之前为了能够让ROS与底层能够顺利通讯,我采用可开源开发板arduino ,因为arduino有ROS的库,能够按照ROS wiki上所给的教程就可以顺利的开发,但由于arduino的局限性,我觉得是 ...

最新文章

  1. 《JAVA练习题目9》 创建一个Person类和一个Family类。(这次的OJ实在写的没有状态,被样例搞崩了,这次代码还有好多代码复制等一系列不良现象,就是为了过OJ写的。。大家凑活看一下吧)
  2. [Bug] .NET 2.0 的Bug —— ComboBox中不能添加Component.
  3. JavaScript实现递归楼梯问题(动态规划解决方案)算法(附完整源码)
  4. 用clipboard.js实现纯JS复制文本到剪切板
  5. uniDBGrid导入数据库(转红鱼儿)
  6. 第一篇:对Adaboost和GBDT的学习
  7. .Net Core 之 图形验证码 本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能。...
  8. mybatis传统方式开发DAO
  9. opencv图片旋转90°/-90°/180°(网上很多转换,长宽出问题,这里可以长宽对其)
  10. 【网络流24题】星际转移问题(最大流)(网络判定)
  11. JBoss主要版本下载链接一览
  12. android screenshot 命令,android 截图,视频录制命令 screencap screenrecord screenshot
  13. 2020年 高教社杯 全国大学生数学建模竞赛【论文格式规范】
  14. 马士兵java学习之路
  15. recv函数的返回值梳理
  16. 药店管理系统|数据库设计
  17. 华为2016研发工程师编程题---删数
  18. 第二百九十三,Memcached缓存
  19. 互联网赚钱:死磕和专注
  20. C语言getopt()函数

热门文章

  1. MySQL字符集小结
  2. 6、宏定义与预处理、函数与函数库
  3. MOSS中如何自定义WebService
  4. Andrid Floating Action Button
  5. 【Algorithm】冒泡排序
  6. 2009.12.9.工作日记
  7. Oracle 10g 高级安装图文教程(一)
  8. 云锵基金 2019 年 04 月简报
  9. 一个销售精英拜访客户的6大绝招,胜过10次培训,实用!
  10. vue-webpack3x -- webpack4x