Commit Graph

160 Commits

Author SHA1 Message Date
nnhy 65d18e8727 Sys增加设定任务周期的方法 2015-08-22 06:37:53 +00:00
nnhy 547e0759fd 调整写法,消灭任务调度的全局变量,编译通过,未测试 2015-08-22 06:26:46 +00:00
nnhy 2e1ac656c1 干掉一个函数,节省0.15k 2015-08-22 03:49:51 +00:00
nnhy 4b9161c1e6 RTM编译时,不要编译调试信息,甚至调试字符串都不要参与编译,测试通过,固件减小12.4% 2015-08-19 09:53:47 +00:00
nnhy f372c5391b 主要三大对象的析构函数用不着 2015-08-19 02:49:55 +00:00
nnhy 90aba92a9b 事件型任务运行指定下一次执行时间,便于连续改变任务执行时间 2015-08-18 11:03:37 +00:00
nnhy d78cc3dc79 借助RVO优化系统当前时间的返回值 2015-08-12 13:31:55 +00:00
nnhy e199413977 修改版本号 2015-08-06 08:31:23 +00:00
nnhy ac31c30469 C++里面,long和int是相同的,64位长整型要用longlong 2015-08-06 08:30:35 +00:00
nnhy db11d10b82 v3.0.2015.0806 增强系统调度器,支持无阻塞多任务调度
GD32F103VE测试通过
2015-08-06 07:32:45 +00:00
nnhy d6707ef77b 修改Time.Sleep,让它在死循环等待时,可根据外部条件退出。
修改Task调度,让它可中断正在死循环的Sleep,马上进行下一回合任务调度
2015-08-05 15:17:33 +00:00
nnhy 576afb3a61 设置任务的开关状态,同时运行指定任务最近一次调度的时间,0表示马上调度 2015-08-05 06:57:28 +00:00
nnhy 2c6e768654 升级任务调度器,支持创建事件型任务 2015-08-05 04:39:24 +00:00
nnhy 6a8c3da4d4 系统时钟虽然很重要,但是并非所有系统都需要用到系统时钟 2015-07-28 15:18:15 +00:00
nnhy 7631d93ab6 系统启动之前,不要做高级任务调度 2015-07-24 07:50:13 +00:00
nnhy 5a7c3db684 为了确保至少被有效调度一次,需要在被调度任务内判断
修正Ping无法等待响应的Bug
2015-07-19 10:04:41 +00:00
nnhy d0e33af967 把系统时钟中断间隔设到最大,此举可能影响Thread的抢占式调度,网关C测试通过,未测试Thread 2015-07-18 02:45:28 +00:00
nnhy abbc3abcc0 逐步减少Time.Current的使用 2015-07-17 09:40:49 +00:00
nnhy 6b8f12b948 强化任务调度管理,为了精确统计任务时间做准备 2015-07-15 07:59:35 +00:00
Stone f8c9a16ce7 堆栈相互穿透,内存已用完!可能是堆分配或野指针带来了内存泄漏! 2015-07-10 08:55:56 +00:00
nnhy d34ea09d24 us=0 表示释放一下CPU 2015-06-23 07:38:36 +00:00
nnhy 45998472d6 增加任务禁用和启用,在暂时不需要调度任务时,可禁用 2015-06-23 03:11:13 +00:00
nnhy e26377529e 如果休眠时间足够长,允许多次调度其它任务 2015-06-23 02:31:36 +00:00
nnhy f4eb07bf34 睡眠时当前任务释放CPU,允许多次调度其它任务,基础测试通过 2015-06-23 02:26:27 +00:00
nnhy ca54039080 改进任务调度系统,未启动多线程的情况下,Sleep也能够调度其它任务 2015-06-18 12:55:56 +00:00
nnhy 1f8837f663 还是不能依赖Object来一次性初始化内存,因为某些类包含了别的类,在Init之前已经初始化了内部对象 2015-06-18 06:19:51 +00:00
nnhy b964fd0d52 Sys继承自Object,确保初始化清零 2015-06-16 17:57:44 +00:00
nnhy 74174ab346 准备构建C#类型体系,编译通过,未测试 2015-06-16 04:38:29 +00:00
nnhy 64be01fd50 增加令牌客户端编译通过,未完成
系统Sys增加设备代码Code
2015-06-15 10:16:49 +00:00
nnhy 7d22fd30ea F4有64k的CCM内存 2015-06-15 09:13:09 +00:00
nnhy 67358539f1 莫名其妙,STM32F407VG不能用192k的RAM,只能用到128K,后面的RAM操作抛出异常 2015-06-15 04:18:48 +00:00
nnhy 9a3bc466fe 非线程模式,最大睡眠时间允许1秒 2015-05-20 09:11:15 +00:00
nnhy e610194460 增加输出公司名称 2015-02-10 09:47:12 +00:00
nnhy dc93911b98 通过编译后直接修改axf文件的方式写入编译时间
测试通过
2015-02-09 16:51:52 +00:00
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