Commit Graph

83 Commits

Author SHA1 Message Date
nnhy d3962ae404 2016-06-03 17:37:30 +00:00
nnhy f3a4b0b65b 使用列表重构Tasks,测试通过 2016-06-03 17:00:22 +00:00
Stone 921f0553e1 使用cstring替代const char* 2016-06-02 12:10:54 +00:00
WangQiang 85409cb90e include问题 2016-05-31 08:26:07 +00:00
nnhy 3d0f6a75bb 统一DateTime::Now()表示当前时间 2016-05-28 08:26:30 +00:00
nnhy d1f6245d9b 所有NULL更换为nullptr,GCC要求更严格。
Sys.h头文件不再包含string.h,禁止SmartOS除了Type和String以外的地方使用内存管理函数
2016-03-14 04:28:04 +00:00
nnhy 11ec1084fd ulong => UInt64
_REV/_REV16 独立汇编实现,不依赖固件库
2016-03-07 10:46:10 +00:00
nnhy ecd4c2f2a4 其实默认最大深度为1,已经禁止所有任务重入,需要重入的任务得专门设置 2016-01-11 11:55:15 +00:00
nnhy a2c8533464 事件型任务和一次性任务,禁止重入 2016-01-11 11:53:47 +00:00
nnhy bf98a6682f 取消宏定义string,统一使用字符指针char*,string为C++标准字符串类库让路。
经过测试,在容量较大的芯片上可以使用string,仅使用+=功能,RTM版本固件增加了大概18k。
2015-12-30 08:51:47 +00:00
Stone bdac393ac4 整理代码,删除不再使用的调试代码和日志 2015-12-29 04:36:22 +00:00
nnhy 999369a6b2 F1不需要分散加载,那是130才有的问题,需要把重点代码放到系统最前面 2015-12-05 09:06:48 +00:00
nnhy 20a151c81c 预分配任务内存,避免频繁堆分配 2015-12-04 11:26:35 +00:00
nnhy 49b544c8b1 只有最大时间调用时,才允许间隙休息 2015-11-27 04:00:39 +00:00
nnhy 900bc5549c 修正任务释放导致死机的BUG,网关C测试通过 2015-11-13 13:48:18 +00:00
nnhy 94cea1c36a !!增加函数跟踪栈,进入函数时压栈函数名,离开时弹出。便于异常时获取主线程调用列表 2015-11-13 13:34:36 +00:00
nnhy 5555bb67fe 任务模块在网关上有野指针出现,增加日志抓BUG,未完成 2015-11-09 04:16:30 +00:00
nnhy 59baca7be6 增加获取系统启动时间的Sys.Ms(),等同于Time.Current(),但是无需再引用Time.h 2015-11-03 08:52:31 +00:00
nnhy 199e7bc64f 兼顾TINY 2015-11-02 03:55:42 +00:00
nnhy 93694ee36f 采用数组重构任务列表 2015-11-01 07:16:18 +00:00
nnhy b3565c8119 调试统计函数不要参与发行版编译 2015-10-30 04:52:33 +00:00
nnhy c26f493650 !!!核心数组Array降为非模版,新增模版数组TArray,网关C测试通过。
这次修改影响整个系统每一个细节,各个地方要及时跟进
2015-10-30 04:36:18 +00:00
nnhy 3e7d816383 计算任务执行的平均毫秒数,用于中途调度其它任务,避免一个任务执行时间过长而堵塞其它任务 2015-10-29 08:13:30 +00:00
nnhy ae4b2c7171 指定了代码段的类,所包含的函数一定被编译进入发行版固件,不管有没有引用 2015-10-28 13:55:23 +00:00
nnhy 6b966abe59 通过分散加载文件,把核心代码提升到前面去 2015-10-28 09:33:12 +00:00
nnhy f023707ae8 设置任务的开关状态,同时运行指定任务最近一次调度的时间,0表示马上调度 2015-10-27 08:13:02 +00:00
nnhy 92d1bcfc51 任务状态列表 2015-10-22 11:10:57 +00:00
nnhy 7116f2a986 精简不再使用的功能 2015-10-22 01:25:29 +00:00
nnhy b93b272a4e 没有收到数据时,需要给缓冲区置零,否则系统逻辑会混乱 2015-10-08 03:03:05 +00:00
nnhy 414b1dfdaf 优化串口接收中断处理的性能 2015-10-05 14:56:31 +00:00
nnhy dbd64c0fac 较大的Sys.Delay也需要进行时间任务调度,默认以50us作为边界 2015-10-05 12:36:35 +00:00
nnhy cf8855d6c9 任务系统调度时间单位改为ms,局部测试系统可工作,但是时间变慢 2015-10-05 11:40:05 +00:00
nnhy e208ce88e2 修正_Tasks没有初始化的问题,在Keil项目的RAM配置页勾选noinit后发现问题所在 2015-09-23 10:11:46 +00:00
nnhy a6c27954d9 2015-09-19 09:58:00 +00:00
nnhy 1712f779cc 使用数组接管任务队列,避免大量堆分配,测试通过 2015-09-19 09:41:18 +00:00
nnhy 547e0759fd 调整写法,消灭任务调度的全局变量,编译通过,未测试 2015-08-22 06:26:46 +00:00
nnhy 90aba92a9b 事件型任务运行指定下一次执行时间,便于连续改变任务执行时间 2015-08-18 11:03:37 +00:00
nnhy 430c2de2c6 每次上电打开RTC之前,都需要选择好LSI/LSE,否则会死循环等待。
设置报警时间时,不能清零后重新设置ms,还是老办法在原来基础上相加才有效。
Sleep时,判断RTC是否开启了低功耗
2015-08-13 05:08:14 +00:00
nnhy 76d8b7ff17 重构系统时钟架构,RTC独立,编译通过,未测试 2015-08-12 14:33:05 +00:00
nnhy 2312baeb7f 修正类型转换的警告 2015-08-06 09:13:17 +00:00
nnhy ac31c30469 C++里面,long和int是相同的,64位长整型要用longlong 2015-08-06 08:30:35 +00:00
nnhy fad7d6c776 注意类型转换 2015-08-06 07:55:29 +00:00
nnhy 72c8b88120 如果事件型任务还需要执行,那么就不要做任何等待
测试通过
2015-08-05 16:31:29 +00:00
nnhy d6707ef77b 修改Time.Sleep,让它在死循环等待时,可根据外部条件退出。
修改Task调度,让它可中断正在死循环的Sleep,马上进行下一回合任务调度
2015-08-05 15:17:33 +00:00
nnhy 227c1c3f99 串口波特率默认值改为1024000,测试通过。
收发缓冲区默认大小64足够,串口1024000下测试通过
2015-08-05 14:46:39 +00:00
nnhy 7eaaf7bd59 任务调度支持最大深度。默认1层,不允许重入 2015-08-05 05:37:32 +00:00
nnhy 079b376d53 如果是事件型任务,这里禁用。任务中可以重新启用
如果还有数据,打开任务
测试通过
2015-08-05 05:10:50 +00:00
nnhy 00f2b240bb 注意Execute内部可能已经释放了任务 2015-08-05 04:40:09 +00:00
nnhy 2c6e768654 升级任务调度器,支持创建事件型任务 2015-08-05 04:39:24 +00:00
nnhy 6a8c3da4d4 系统时钟虽然很重要,但是并非所有系统都需要用到系统时钟 2015-07-28 15:18:15 +00:00