摘要: Cortex-Mx启动,备忘,以免将来忘记。中断向量表不用说,从重置中断开始吧 这里一共就执行了两个函数,SystemInit和__main。 我们一般在SystemInit里面配置系统时钟,这里跳过。__main是我们今天的重点。 分散加载这里将会初始化我们的全局静态变量 可能汇编看起来不是很直观阅读全文
posted @ 2017-09-04 08:29 大石头 阅读(121) 评论(0) 编辑
摘要: SmartOS是一个完全由新生命团队设计的嵌入式操作系统,主要应用于智能家居、物联网、工业自动化控制等领域。ARM Cortex-M系列微处理器几乎全都做成单核心,对于业务逻辑较复杂的物联网就显得难以使用,因此SmartOS设计了两个多任务调度系统:1,多线程调度,重量级,逼近PC操作系统多线程用法阅读全文
posted @ 2017-09-03 13:27 大石头 阅读(154) 评论(0) 编辑
摘要: 设备身份验证有以下目标:1,别人的设备不能接入我们的云平台2,我们的设备,不能接入别人的云平台3,考虑到设备要批量生产,云平台先生成设备编码再写入每个设备的方法,非常不现实!那么,标准的设备身份验证应该是:1,设备上电联网后,需要一个激活过程2,设备向云平台申请激活,包括 厂商、生产批次、生产密码、阅读全文
posted @ 2017-09-03 13:20 大石头 阅读(108) 评论(0) 编辑
摘要: 以太网接入型设备,一般分为网线或WiFi两种。不管是WiFi还是网线,可以通过局域网抓包、笔记本WiFi桥接抓包等等手段。最著名的抓包软件 Wireshark如何抓取硬件设备的网络数据包,考量的是网络知识基本功,需要大家自行度娘!基本准备工作:1,Wireshark监听udp的53端口,一部分硬件设阅读全文
posted @ 2017-09-02 00:02 大石头 阅读(505) 评论(0) 编辑
摘要: 返回值优化,是一种属于编译器的技术,它通过转换源代码和对象的创建来加快源代码的执行速度。RVO = return value optimization。测试平台:STM32F103VG + Keil 5.15背景:我们有个MacAddress::ToArray 因为封装需要,打算返回字节数组类Byt阅读全文
posted @ 2017-09-01 22:59 大石头 阅读(110) 评论(0) 编辑
摘要: 自2003年开始,断断续续用了12年C++,直到这两年做物联网嵌入式开发,感觉对C++的掌握仅有10%左右。习惯了C#开发,C++倒显得难以下手!今天就一个函数返回问题跟辉月兄弟讨论一番,大有所获,足以解决我们目前80%的问题,感觉对C++的掌握上升到了20%。背景,现有字节数组ByteArray和阅读全文
posted @ 2017-09-01 22:56 大石头 阅读(556) 评论(15) 编辑
摘要: 因为需要自动适配芯片进行系统配置,所以我们有必要通过读取一些系统寄存器来获取必要信息。我们的代码需要兼容STM32F1/GD32F1/STM32F0/STM32F4代码如下: 各常见芯片信息如下:STM32F030C8T6 GD32F130C8T6 STM32F051C8T6 GD32F150C8T阅读全文
posted @ 2017-09-01 14:05 大石头 阅读(40) 评论(0) 编辑
摘要: 无数次遭受堆栈溢出折磨,随着系统变得复杂,故障点越来越难以查找!主要溢出情况如下:1,一般RAM最后两块空间是堆Heap和栈Stack,堆从下往上用,栈从上往下用,任意一个用完,都会进入对方的空间2,如果栈用完,进入堆的空间,这个时候系统是不会有任何异常的,也就是说,栈底没有什么意义。除非堆和栈指针阅读全文
posted @ 2017-09-01 13:55 大石头 阅读(17) 评论(0) 编辑
摘要: 先来看看我们SmartIRQ的具体实现 在构造的时候备份,然后根据参数决定打开还是关闭中断。在系统内核时钟里面,关键操作需要关闭中断,最后打开,以免其它中断影响关键操作的原子事务性。于是我们有: 其中irq在离开作用域时被释放,自动调用SmartIRQ的析构函数,还原了中断状态因为调用极其频繁,最高阅读全文
posted @ 2017-09-01 13:12 大石头 阅读(80) 评论(0) 编辑
摘要: 在测试MF固件时,发生一个非常诡异的异常,代码如下: 指定第二行代码时,会跳到异常处理程序,发生了6号异常(用法异常Usage Fault)我对ARM还是非常陌生,不知道怎么可能发生这个问题。在今天之前,这行代码执行了无数次也未曾出错,最近也没有修改该函数或者相关函数的代码,昨天倒是大量修改了其它代阅读全文
posted @ 2017-09-01 13:06 大石头 阅读(38) 评论(0) 编辑