在上一次直播里,我们介绍了栈回溯、手工修改bin文件打断点,我们还可以进一步改进:1.栈回溯:修改异常处理函数自动分析栈,借助工具直接找出更具体的调用关系:哪个文件、哪一行2.打断点:上一次课程里只能打一个断点,运行到断点时程序就崩溃。我们可以改进,修改bin文件打多个断点,修改异常处理函数让它打印信息后继续运行。[》》》点此查看回放《《《](https:ost.51cto.comactivity156)直播大咖韦东山15年嵌入式培训经验...
2022-07-07 14:08:48 9346浏览 5点赞 20回复 4收藏
在单片机开发中,无论是裸机程序还是基于RTOS的程序,有时候我们会碰到很难解决的Bug。比如:1.代码量很大,你很难找到出错时的调用关系2.代码稍微增减一行,程序就没错误了;增加一个打印,逻辑上完全没影响,但是程序就崩溃了。我会结合多年的工作经验,教大家两个调试绝招:栈回溯、修改bin文件实现断点[》》》点此查看直播回放《《《](https:ost.51cto.comactivity208)直播大咖韦东山15年嵌入式培训经验,涉及Linux、FreeRT...
2022-06-23 12:32:17 1.5w浏览 9点赞 84回复 3收藏
鸿蒙设备开发HCIA认证目前已经上线了,我把认证考试资料分享给大家,有需求的提前准备起来。华为认证官网的测试入口,可以先去练练手:https:ilearningx.huawei.comportalexam109391about刚模拟测试了一下,感觉还是偏向LiteOSM,单片机RTOS。一天只能做三次,刷题是有用的:另外,我和张荣超老师会在7月20日为大家解读一下HCIA考证,这几天先集中准备一下公开课:《鸿蒙HCIA认证考试大纲解读》时间:7月20日报名地址:https:harmonyos.51cto.comactivity81
2021-07-16 10:30:16 2.8w浏览 9点赞 12回复 9收藏
1.简介QEMU可以模拟x86,也可以模拟各种ARM板子,还可以模拟各种外设。百问网对QEMU做了很多改进,支持更多硬件,支持更多GUI现实,让用户可以更有真实感地使用QEMU来模拟IMX6ULL板子。1.1100ASKQEMU特点:模拟网卡模拟LCD显示功能模拟led灯、按键模拟at24cxxi2c存储芯片,直接可以通过用户态操作看到效果模拟触摸屏(单点触摸)后续会逐渐增加更多的模拟硬件模块1.2已经移植的系统Linux鸿蒙LiteosA2.使用QEMU2.1下载下载本GIT仓...
2021-05-20 16:17:08 3.7w浏览 29点赞 10回复 10收藏
1.基础知识移植内核对技术的要求比较高、比较细。1.1单片机相关的知识栈的作用加载地址、链接地址重定位几个简单的硬件知识○串口○定时器中断的概念1.2Linux操作相关的知识Linux常用命令简单的脚本:脚本就是把命令写在一个文件里MakefileGCC编译命令1.3芯片相关知识能阅读芯片手册(英文)○移植最小系统时,涉及的手册内容不多能看懂硬件原理图○移植最小系统时,涉及的原理图内容不多2.驱动程序知识对于只有单片机知识的人来...
2020-10-29 20:16:11 2.5w浏览 7点赞 1回复 9收藏
1.框架鸿蒙是一套完整的、普通人可以直接使用的操作系统,跟Windows、安卓、IOS类似。常见的错误观点是把鸿蒙跟Linux放在一起来对比,这不对:Linux只是一个内核,普通人无法使用○还需要在Linux之上安装各类程序○比如Ubuntu等发行版,它们在Linux内核之上,还有桌面、各类办公软件鸿蒙支持多种内核:Linux、Liteos(又分为Liteosa、Liteosm)在内核之上,鸿蒙还有各种子系统,在子系统之上又有桌面等软件2.嵌入式软件系统的组成...
2020-10-29 19:50:13 2.2w浏览 3点赞 1回复 5收藏
这是10.14晚8:00《在STM32MP157上移植鸿蒙内核Liteosa》直播公开课中用到的开发手册,上图是文件的目录,我上传了PDF格式的文件,供大家下载学习。
2020-10-15 09:57:47 2.4w浏览 3点赞 3回复 6收藏
0.准备工作与说明0.1准备工作请先下载以下文件,里面有文档:https:gitee.comweidongshanopenharmonyforimx6ullrepositoryarchivemaster.zip参考GIT中的文档,安装好虚拟机,从GIT总下载Liteosa源码,打上IMX6ULL的补丁。0.2说明1.Makefile编译系统分析1.1变量1.LITEOSTOPDIRkernelliteosa2.LITEOSTHIRDPARTYthirdparty3.LITEOSMKPATHkernelliteosatoolsbuildmk4.MKPATH$(LITEOSTOPDIR)toolsbuildmkkernelliteosatoolsbuildmk1....
2020-10-14 14:54:05 2.2w浏览 8点赞 5回复 5收藏
鸿蒙Liteosa是一个内核(也常常被叫做操作系统,反正大家都把操作系统、内核混着说)。常见的内核有freeFTOS、rtthread、UCOS,这些都属于实时操作系统(RTOS),Linux不是实时操作系统。有了那么多操作系统,为什么还要开发Liteosa呢?大多数的RTOS都是运行于MCU(单片机上),不支持MMU(内存管理单元),内核空间和APP空间不能隔离开,APP出错后整个系统就会崩溃;也不支持POSIX接口,这使得大量的开源软件无法直接在MCU上运行。Linu...
2020-10-09 19:35:28 2.3w浏览 4点赞 2回复 3收藏
截取自:HarmonyOS内核liteosa开发手册第4篇编译Liteosa1.1Clang、LLVM与GCC介绍我们在Ubuntu中给PC机编译程序时,执行这样的命令:gccohellohello.c我们在Ubuntu给ARM板编译程序时,执行这样的命令(gcc前缀可能不一样):armlinuxgccohellohello.c在Liteosa中,使用LLVM来编译程序。LLVM的本意是“LowLevelVirtualMachine”,一个底层的虚拟机。但是它现在已经发展成了一种编译器(compiler)的框架系统。简单地说,LLVM可以取代G...
2020-09-18 13:59:30 1.8w浏览 3点赞 2回复 1收藏
截取自:HarmonyOS内核liteosa开发手册第4篇编译Liteosa请先下载以下文件,里面含有补丁文件:https:gitee.comweidongshanopenharmonyforimx6ullrepositoryarchivemaster.zip1.1下载补丁文件等在Ubuntu中执行以下命令:cdhomebookgitclonehttps:gitee.comweidongshanopenharmonyforimx6ull.git结果如下:上图中的“apps”中含有几个实例应用程序,“patch”中含有为IMX6ULL制作的补丁文件,“tools”中是烧写工具。1.2使用补...
2020-09-18 10:24:45 1.5w浏览 0点赞 0回复 0收藏
截取自:HarmonyOS内核liteosa开发手册第2篇环境搭建、Linux基本操作、工具使用1.1鸿蒙系统有哪些内容?鸿蒙系统,就相当于一套完整的PC软件系统。1.2日常工作中开发流程是怎样?Bootloader、内核、APP等等软件,需要在Ubuntu中编译;但是阅读、修改这些源码时,在Windows下会比较方便。所以,我们需要在Windows、Ubuntu上都存有源码。①在Windows上阅读、研究、修改(使用Sourceinsight会很方便),修改后上传到Ubuntu(使用Filez...
2020-09-17 18:17:31 1.3w浏览 0点赞 0回复 0收藏
截取自:HarmonyOS内核liteosa开发手册第4篇编译Liteosa1.1在Ubuntu中安装开发环境如果你是从头看文档,并且按照文档操作,那么你已经按照《5.2安装Ubuntu软件》下载并运行了这个脚本:Configuringubuntu.sh。如果你是中途看文档,那么请按照《5.2安装Ubuntu软件》操作一次。这个脚本在鸿蒙发布之后又更新了,对于我们的老学员,也需要从新下载、执行它。下面解析一下这个脚本。首先,它会做一些检查,然后列出一个菜单供你选择...
2020-09-17 17:44:46 1.4w浏览 2点赞 0回复 1收藏
截取自:HarmonyOS内核liteosa开发手册第三篇:体验鸿蒙内核Liteosa1.5开机自动启动鸿蒙把开发板设置为USB启动,接好2条USB线,装好驱动程序后,运行烧写工具.先烧写,点击下图所示按钮:然后设置默认系统,如下图所示:最后,设置为EMMC启动,重新上电后就可以自动进入鸿蒙系统。若想了解更多内容,请点击https:harmonyos.51cto.compostsidsid841去文末下载手册(PDF版)课程链接:Harmony鸿蒙内核Liteosa开发
2020-09-17 17:38:56 1.7w浏览 1点赞 0回复 0收藏
截取自:HarmonyOS内核liteosa开发手册第三篇:体验鸿蒙内核Liteosa1.4一键体验鸿蒙:下载到内存运行1.4.1一键启动把开发板设置为USB启动,接好2条USB线,装好驱动程序后,运行烧写工具,点击下图所示按钮,观察串口信息,可以看到板子启动进入鸿蒙系统了:串口信息如下:1.4.2执行shell命令执行help命令,可以看到支持的SHELL命令,如下:1.4.3执行数码相框GUI程序注意:必须用“.bindigitpic”,不能用绝对路径“bindigitpic...
2020-09-17 17:28:46 1.2w浏览 0点赞 0回复 0收藏
截取自:HarmonyOS内核liteosa开发手册第三篇:体验鸿蒙内核Liteosa1.3鸿蒙文件在哪在“100askimx6ull烧写工具v4”目录下,若想了解更多内容,请点击https:harmonyos.51cto.compostsidsid841去文末下载手册(PDF版)课程链接:Harmony鸿蒙内核Liteosa开发
2020-09-17 17:27:53 1.5w浏览 0点赞 0回复 0收藏
截取自:HarmonyOS内核liteosa开发手册第三篇:体验鸿蒙内核Liteosa1.2安装驱动程序下载“100askimx6ull烧写工具v4.zip”后,把它解压可得如下目录:运行上图中的程序。1.2.2连接USBOTG线先把开发板设置为USB启动方式,接好2条USB线,开发板上电。(1)全功能版接线方式(2)MINIEMMC版接线方式1.2.3安装IMX6ULL的USB驱动程序通过USB下载或是烧写程序时,需要把开发板的OTG口用USB线连接到电脑。一般都会自动安装驱动,烧写软件的绿...
2020-09-17 17:27:01 1.7w浏览 0点赞 0回复 0收藏
截取自:HarmonyOS内核liteosa开发手册第三篇:体验鸿蒙内核Liteosa1.1熟悉100ASKIMX6ULL启动开关1.1.1全功能版100askimx6ull全功能版支持USB、EMMC、SDTF卡三种启动方式。使用后2种启动方式之前,需要先在EMMC或SDTF卡上烧写系统。板子背后画有一个表格,表示这3种方式如何设置。表格如下:这3种启动方式的设置示意图如下:其中的USB启动模式主要用来烧写系统。注意:设置为USB启动时,不能先插上SDTF卡。1.1.2MINIEMMC版百问...
2020-09-17 17:23:52 1.3w浏览 1点赞 0回复 1收藏
很多人会混淆鸿蒙跟Linux的关系。先举个例子,大家很熟悉的Windows里面含有内核,也含有UI系统,含有桌面程序,普通人可以直接使用Windows。但是Linux仅仅是一个内核(它提供进程管理、文件系统等概念),必须在Linux之上安装各种APP,普通人才可以使用。基于Linux内核制作出来的完整系统有Ubuntu、debian等等,普通人可以直接使用这些完整系统。所以鸿蒙要对标的是Windows、安卓、IOS这类完整系统,而Linux只是鸿蒙支持的内核之...
2020-09-17 17:00:52 6.6w浏览 25点赞 27回复 99收藏
本文截取自:HarmonyOS内核liteosa开发手册第一篇:鸿蒙介绍、资料下载第一章:鸿蒙介绍1.1鸿蒙不是Linux,也不是安卓很多人会混淆鸿蒙跟Linux的关系。先举个例子,大家很熟悉的Windows里面含有内核,也含有UI系统,含有桌面程序,普通人可以直接使用Windows。但是Linux仅仅是一个内核(它提供进程管理、文件系统等概念),必须在Linux之上安装各种APP,普通人才可以使用。基于Linux内核制作出来的完整系统有Ubuntu、debian等等,...
2020-09-17 16:33:17 1.9w浏览 4点赞 1回复 2收藏
是的,我们的异常处理函数使用串口打印,所以:需要先初始化串口,打印函数不要使用中断方式,而是使用查询方式。
2022-06-25 10:26:28 0点赞 0回复
可以,在异常处理函数里,我们可以做得更强大:可以根据用户的指令查看寄存器、查看地址,这就是一个monitor
2022-06-25 10:25:47 0点赞 0回复
既然能单步执行,那就继续单步执行下去,看看是在哪条代码出错。
2022-06-25 10:25:07 0点赞 0回复
这有篇文章:https:blog.csdn.netlifeicearticledetails7982542
2022-06-25 10:23:45 0点赞 0回复
裸机也可以,我们这个视频里虽然用的是FreeRTOS的工程,但是出错的函数故意放到前面了,还没启动多任务呢。
2022-06-25 10:23:04 0点赞 0回复
当然可以,很多无法现场调试的产品都会把错误信息存入sd卡或者上报服务器。
2022-06-25 10:22:12 0点赞 0回复
ucos也许在某些专用领域还在使用,但是民间很少用ucos了,简单产品使用FreeRTOS,复杂产品可以使用RTThread,RTThread生态更丰富。
2022-06-25 10:21:36 0点赞 0回复
是的,很多单片机资源不足,代码只能放在flash上运行,data段要能读能写,必定要从flash复制到内存
2022-06-25 10:20:40 0点赞 0回复
发生异常时,CPU保存完一些寄存器后,会把LR赋一个特殊的值:EXCRETURN,它的bit2就表示发生异常时程序用的是MSP还是PSP,请查看《ARMCortexM3与CortexM4权威指南》第8章
2022-06-25 10:18:11 0点赞 0回复
裸机的编程方式有很多:轮询、前后台、用定时器定时执行、状态机,不同场景有不同方式,没有谁更好。
2022-06-25 10:16:53 0点赞 0回复
是的,sp,lr,pc等等是别名
2022-06-25 10:15:43 0点赞 0回复
当然可以,很多出厂的设备就是把log信息打印到sd的文件系统里,甚至上报到服务器。
2022-06-25 10:15:21 0点赞 0回复
首先,单板上至少写bin文件,我们无法从bin文件里得到函数名。所以要想打印函数名,只能借助PC上的工具。有一个命令:addr2line,可以传入axf文件、传入地址,打印出函数名、哪一行。下次视频我们会继续讲解:自动分析栈、多次打断点,那时候我们详细讲解
2022-06-25 10:14:41 0点赞 0回复
应该也有,但是51单片机内部机制我没研究过,无法回答
2022-06-25 10:12:59 0点赞 0回复
有,起始汇编并不难学,只需要掌握几条汇编就可以了。www.100ask.net有视频:《ARM架构与编程·基于STM32F103》
2022-06-25 10:12:38 0点赞 0回复
是的,会
2022-06-25 10:11:50 0点赞 0回复
视频里的例子时这样的:我们知道函数C发生了错误,但是看代码无法查出函数C为何会发生错误,那么就可以在函数C那里打断点。
2022-06-25 10:11:37 0点赞 0回复
www.100ask.net首页有学习方法
2022-06-25 10:10:33 0点赞 1回复
视频里重讲了
2022-06-25 10:10:17 0点赞 0回复
是的,strcpy、sprintf等函数都非常危险,有内存溢出的隐患。建议使用strncpy、snprintf等函数
2022-06-25 10:09:45 0点赞 0回复