随想录(vc仿真下的嵌入式开发)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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仿真下的嵌入式开发)相关推荐
- windows和linux环境下的嵌入式开发区别
主机(PC)开发差别: 在windows下写程序 1.--->打开Microsoft Visual C++ 6.0程序 2.--->关闭提示窗口(有的程序不提示) 3.--->fil ...
- linux下的嵌入式开发技能(嵌入式工程师必备)
嵌入式Linux开发从下到上分为:嵌入式硬件开发.嵌入式驱动开发.嵌入式系统开发.嵌入式软件开发. 一.嵌入式硬件开发:熟悉电路等知识,非常熟悉各种常用元器件,掌握模拟电路和数字电路设计的开发能力.熟 ...
- Java开发和嵌入式开发该如何选择
首先,Java开发和嵌入式开发都是目前IT行业内比较常见的开发岗位,也都有大量的从业人员,所以从就业的角度来看,学习Java开发和嵌入式开发都是不错的选择.Java语言的应用领域包括Web开发.And ...
- 嵌入式开发人员应该关心机器学习的 5 个理由
人工智能 (AI) 和机器学习 (ML) 似乎每年越来越多地成为头条新闻.但在大多数情况下,嵌入式开发人员似乎并没有给予太多关注.当然,人工智能有一些非常酷的应用程序.然而,对于实时微控制器开发人员来 ...
- 该如何选择Java开发和嵌入式开发
首先,Java开发和嵌入式开发都是目前IT行业内比较常见的开发岗位,也都有大量的从业人员,所以从就业的角度来看,学习Java开发和嵌入式开发都是不错的选择.Java语言的应用领域包括Web开发.And ...
- python嵌入式开发实战_嵌入式Qt实战教程 PDF 高清版
给大家带来的一篇关于嵌入式相关的电子书资源,介绍了关于嵌入式.Qt实战方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小43.4 MB,陈志发,王苑增编写,目前豆瓣.亚马逊.当当.京东等电 ...
- esp32 怎么分配freertos 堆栈大小_嵌入式开发入门-从STM32CudeMX、FreeRtos、Proteu仿真开始...
系统 嵌入式是什么呢? 嵌入式开发就是指在嵌入式操作系统下进行开发,常用的嵌入式操作系统有FreeRtos,ucos,linux,android等.与单片机开发最大的不同就是裸跑与跑系统的区别.嵌入式 ...
- 嵌入式开发模拟器:qemu使用,仿真多种方式启动内核kernel (超详细,tftp/nfs等方式)
适用于: 想学习嵌入式开发,但又没有购买开发板的情况 开发测试阶段避免繁琐耗时下载到主板 便于调试驱动及内核 与外设关联不大时 环 境: vmare 15 pro ubuntu 18.04 qemu ...
- 在ubuntu下设置eclipse开发STM32等嵌入式设备
之前为了能够让ROS与底层能够顺利通讯,我采用可开源开发板arduino ,因为arduino有ROS的库,能够按照ROS wiki上所给的教程就可以顺利的开发,但由于arduino的局限性,我觉得是 ...
最新文章
- 《JAVA练习题目9》 创建一个Person类和一个Family类。(这次的OJ实在写的没有状态,被样例搞崩了,这次代码还有好多代码复制等一系列不良现象,就是为了过OJ写的。。大家凑活看一下吧)
- [Bug] .NET 2.0 的Bug —— ComboBox中不能添加Component.
- JavaScript实现递归楼梯问题(动态规划解决方案)算法(附完整源码)
- 用clipboard.js实现纯JS复制文本到剪切板
- uniDBGrid导入数据库(转红鱼儿)
- 第一篇:对Adaboost和GBDT的学习
- .Net Core 之 图形验证码 本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能。...
- mybatis传统方式开发DAO
- opencv图片旋转90°/-90°/180°(网上很多转换,长宽出问题,这里可以长宽对其)
- 【网络流24题】星际转移问题(最大流)(网络判定)
- JBoss主要版本下载链接一览
- android screenshot 命令,android 截图,视频录制命令 screencap screenrecord screenshot
- 2020年 高教社杯 全国大学生数学建模竞赛【论文格式规范】
- 马士兵java学习之路
- recv函数的返回值梳理
- 药店管理系统|数据库设计
- 华为2016研发工程师编程题---删数
- 第二百九十三,Memcached缓存
- 互联网赚钱:死磕和专注
- C语言getopt()函数