
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
因此,有了我本文开头的那篇博客。从上面引用那篇博客可以看出,qemu有两个可以尝试,官方qemu,RTthread的qemu。现在开始进入主题~(这里我都是。我先在网上看了他的博客。
由于,会,所以进行调试(选择gdb端口即可,上面那个文章有讲),还是比较容易的。但是本文要讲的是如何,而不是调试。其中有两种把程序下载到板子上的方法(win10,stm32f103ZET6单片机,st-linkv2硬件调试器,OpenOCD版本OpenOCD-20211118-0.11.0)...
软件断点的原理就是指令替换,这里替换指令也是多种多样的,自己思考后,觉得可以有如下4种指令替换方法都行:用int3指令,机器码0XCC,一个字节,这个可能只在x86处理器上才有,这个就是个软中断svc yy指令,机器码0xyyDF,两个字节,这个在arm上有,也是个软中断bkpt指令,机器码0x00BE,两个字节,stm32有,专门用于调试的,也是个软中断自己造一条跳转指令(用B或者BL都可以,但
RMS算法根据任务的周期长短分配优先级高低(属于静态优先级分配,优先级不会再改变了)EDF算法根据任务的截止期的早晚分配优先级的高低(后面这两个算法属于动态优先级分配,运行过程中优先级动态改变的)LLF根据任务的松弛度分配优先级的高低松弛度 = 任务必须完成的时间 - 任务本身运行的时间 - 当前时间总结:RMS算法是静态优先级中最优的实时调度算法。EDF和LLF是动态优先级中...
现在开始进入主题~(这里我都是在windows系统上进行的)qemu是github开源的,因此有兴趣的可以自己去改造它增加新的仿真功能,比如支持更多的处理器,更多的外设等。由于windows上自己编译源码,好像有点麻烦,这里就直接找现成的exe。主要3个地方有这样的exe。......................................................
指令集方面:arm一般高端处理器,比如cortex-a系列,都是32位的arm指令。而cortex-m0,1,3,4等低端处理器,也叫做单片机,为了增加代码密度(同样存储器内可以存更多指令),用的是thumb指令集(而且仅支持这个指令集),这个指令集大多数指令是16位的,少数是32位的。这就是为什么上面的调试图中,看到指令都是两个字节,而有的是4个字节。比较老的arm7,arm9等处理器,支持th
git clone https://github.com/u-boot/u-boot.git (如果网速太慢,就自己去这个网站手动下载压缩包自己解压放到主目录 的 u-boot 这个名即可)如果一切顺利,你将在终端看到U-Boot的启动日志,并最终进入U-Boot的命令行提示符(通常是。:指定模拟的CPU为ARMv8架构的Cortex-A57。:U-Boot为不同的硬件平台提供了预设的配置文件。:
因为Python是脚本语言,不会进行编译,所以只有执行到那一行,才能知道那个变量的类型,在pycharm 中,我们可以按下ctrl键,鼠标放在变量上面,但是只能判断出基本类型,大部分变量都是inferred type any,即推断为任意类型,也就是这个IDE也不知道具体是啥类型,因为我刚刚说了,Python是脚本语言,只有运行时候才知道(这就是Python语言的缺点,c++等语言,因为定义变量时
我们做单片机开发,用得比较多的stm32f1xx,stm32f4xx等等,基本上都是用keil(或者说称为mdk)这个集成开发环境IDE比较多,插上调试器,连接板子,编译,下载,调试,方便得很。常见的硬件调试器的驱动,这里要注意,硬件调试器第一步是需要安装驱动的,否则设备管理器识别不到的,那当然OpenOCD就压根没法驱动它了。我们可以发现,IDE所做的事,都是由已有软件来完成,其实就是组织这些已
关于嵌入式开发的一些小技巧,很有用







