Commit Graph

126 Commits

Author SHA1 Message Date
nnhy f46dd6eb21 暂时不使用外部精确时间,那样给编译带来一定麻烦
增加系统名称和版本号
2015-02-08 19:46:58 +00:00
nnhy 710313a737 借助C#脚本干涉编译过程,写入准确的编译时间 2015-02-08 19:37:05 +00:00
nnhy a72d119e57 修正STM32F407VE芯片的RAM计算错误 2015-02-08 10:29:54 +00:00
nnhy 2c27ebd02f Sys::Sleep 设计错误,睡眠%dms太长,超过1000ms建议使用多线程Thread! 2015-02-08 04:03:43 +00:00
nnhy b33e7d89b8 必须先拷贝完成栈,再修改栈指针 2015-02-07 08:23:20 +00:00
Stone 880ce15ca7 精确迁移栈,不浪费空间 2015-02-05 15:07:26 +00:00
Stone 5659b6dd88 输出初始化时间,一般3us,而整个启动完成需要26505us,主要是输出调试信息浪费了大量时间 2015-01-23 03:41:23 +00:00
Stone 8e32b753b1 源数据src转为十六进制字符编码再放入目标字符buf,比如0xA8在目标放两个字节0x41(A) 0x38(8) 2015-01-17 08:40:25 +00:00
Stone 2d34659edb 硬件Crc在测试例程中可以得到跟软件Crc一致的结果,但是在令牌协议解析的时候得到不一样的结果,屏蔽硬件Crc 2014-12-08 17:25:41 +00:00
Stone 543a670da1 修正硬件Crc的BUG
STM32的初值是0xFFFFFFFF,而软Crc初值是0。必须设置初值,否则结果不一样。
2014-12-08 17:18:35 +00:00
Stone 8803b28898 避免删除任务时两次触发delete 2014-11-16 19:29:28 +00:00
Stone c9a6a05cbc if(!_Scheduler) _Scheduler = new TaskScheduler("系统"); 2014-11-04 09:38:56 +00:00
Stone e362448c3e 优化日志输出,适配新版本串口调试工具 2014-10-29 09:54:03 +00:00
Stone 8926b8649d 分配内存时,关闭全局中断,避免多线程问题 2014-10-17 14:47:58 +00:00
Stone 7a5a353b65 增加任务调度模块,系统调度由该模块实现 2014-10-17 14:19:08 +00:00
nnhy b2d1579914 增加Object基类,用于ToString
测试通过,未大范围使用
2014-10-14 13:11:55 +00:00
nnhy 303e074822 使用独立线程来驱动2401的接收,收发关键点加上同步进入锁,更稳定可靠 2014-10-12 02:45:07 +00:00
nnhy 236fcdbb42 修正普遍存在的内存清零不完整的隐患 2014-10-10 08:08:00 +00:00
nnhy ba6500e60d 使用内部硬件实现无初始值的CRC校验 2014-10-10 06:56:29 +00:00
nnhy b353cd23d7 系统任务的周期时间改为ulong,以表示更大的时间值
输出长整型%ld,无符号长整型%llu
2014-10-08 15:53:54 +00:00
nnhy 329a4cbe2f 输出更详细的运行日志,发现一个更严重的问题,Sys.Task的时间不支持大整数,超过35分钟的时间会被截断 2014-10-08 14:01:20 +00:00
Stone 81a066663b 如果有最小时间,睡一会吧,如果使用了多线程,可以起到释放CPU控制权的效果 2014-09-30 04:17:06 +00:00
Stone 7b067ce7e4 进一步融合Sys和多线程调度,统一使用Sys.Start 2014-09-26 07:45:28 +00:00
nnhy 1d36279536 节省空间 2014-09-25 17:14:40 +00:00
Stone 9e96789f39 中断优先级分配方案4,四位都是抢占优先级。其实上面的寄存器操作就是设置优先级方案为0
难怪0无法抢占1,原来是采用了0优先级中断组
2014-09-25 16:21:27 +00:00
Stone 9af5de2196 F1和F4都是同时采用中断优先级分配方案4 四位都是抢占优先级
希望可以解决串口中断优先级1无法被滴答中断优先级0抢占的问题
2014-09-25 16:11:26 +00:00
Stone d40b6d5ea0 默认初始化多线程 2014-09-25 15:15:44 +00:00
Stone 75ddbc1d1b 修正Crc16,测试通过 2014-09-25 11:46:11 +00:00
WangQiang 34261eaf73 纠正 Crc16 len参数错误 2014-09-25 11:42:00 +00:00
Stone b9ed009fcd 恢复被覆盖的asse 2014-09-25 08:22:20 +00:00
WangQiang 2d9ac2f0c5 2014-09-25 07:15:37 +00:00
WangQiang a68af76cd7 Crc16 2014-09-25 03:42:39 +00:00
Stone 2c16a2ed7d 2014-09-22 18:27:24 +00:00
Stone 044acd716f 如果用空闲线程Idle驱动系统定时Sys.Start,可能出现Sleep导致线程挂起,然后没有可用线程供调度。
为此专门增加独立的Main线程。
2014-09-19 20:17:57 +00:00
Stone 6e0727217f 重构系统、时间、线程三者的关系,Sleep优先使用线程级睡眠 2014-09-18 16:33:14 +00:00
Stone 02c2f1c94b 中断向量表固定在Flash里面。本来考虑放在RAM里面是为了可以动态修改,而现在为了增强中断函数,不得不在RAM做二级中断,该优势就变得毫无意义了。另外,放在RAM里面是为了通过增加RAM占用来降低Flash占用,而实际上Flash够用,RAM不够用,RAM更贵! 2014-09-10 12:50:46 +00:00
Stone 23b5d3ac26 不能通过累加的方式计算下一次时间,因为可能系统时间被调整 2014-09-09 07:33:20 +00:00
Stone 698a2167af 2014-09-08 12:14:38 +00:00
Stone 4e9f3bf6ad 默认添加显示实现的任务 2014-09-08 11:59:37 +00:00
Stone bc210e2d2e 2014-09-07 18:56:30 +00:00
Stone 726c647196 堆链表的每一个节点由4字节大小以及4字节下一节点的指针组成
需要找到最后一个空闲节点,然后把大小加上去
2014-09-06 07:57:52 +00:00
Stone 6e444b7fd5 如果已经初始化堆,则直接增加大小即可 2014-09-06 07:31:57 +00:00
Stone bc4df11692 如果已经初始化堆,则直接增加大小即可 2014-09-06 07:20:09 +00:00
Stone 0b3e1273c3 调整异常处理架构 2014-09-06 06:54:29 +00:00
Stone 38926dfc83 SmartOS将会重新设定堆到RAM最大值,但是在Sys设定堆大小之前,别的地方也可能需要用到堆,特别是类的全局对象 2014-09-06 06:33:44 +00:00
Stone 5b53a1757b 改进内存检查方式 2014-08-30 11:05:03 +00:00
Stone 9bc16d3bc5 修正日志输出 2014-08-29 17:22:46 +00:00
Stone 615e72e64d SmartOS将重新设定堆到RAM最大值,让堆栈共用全局变量以外的全部RAM空间 2014-08-29 17:20:11 +00:00
Stone 8ea32aaf1b 为了最大程度使用内存,不再使用双栈。
双栈的做法,PSP足够大了,但是MSP不行,如果把MSP分配过大,又会缩小PSP和堆的空间
2014-08-29 12:14:13 +00:00
Stone 2373944451 增加系统时间结构体SystemTime,支持获取当前时间,支持时间格式化 2014-08-29 11:46:00 +00:00