Commit Graph

70 Commits

Author SHA1 Message Date
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
nnhy 5745e4840f 从Time分离RTC,某些设备可能并不需要RTC时钟,经过分离以后,如果未使用RTC,其代码不参与编译。
成功解决Alarm中断没有收到的问题,原来要打开EXIT17。
睡眠测试仍然失败,RTC保存时间的测试成功通过。
2015-07-24 07:34:12 +00:00
nnhy 5a5a3a6a9a 任务空闲时,暂停系统,进入低功耗模式,编译通过,测试失败,怀疑GD32芯片损坏 2015-07-23 14:26:28 +00:00
nnhy eb919b6baa 睡眠时间不能过长,否则可能无法喂狗 2015-07-23 09:27:01 +00:00
nnhy 1b4f3f00e4 统计任务轮询的平均时间和最大时间 2015-07-20 01:54:40 +00:00
nnhy a5b4c7b6d7 并且任务的平均耗时要足够调度,才安排执行,避免上层是Sleep时超出预期时间 2015-07-20 00:33:54 +00:00
nnhy 9a5d3bdb54 分解任务执行代码,简化逻辑 2015-07-19 10:21:27 +00:00
nnhy 4b826af6a6 增加任务最大耗时 2015-07-19 10:09:50 +00:00
nnhy 5a7c3db684 为了确保至少被有效调度一次,需要在被调度任务内判断
修正Ping无法等待响应的Bug
2015-07-19 10:04:41 +00:00
nnhy d71d6a22d7 显示任务状态之前,显示系统启动时间 2015-07-19 09:47:44 +00:00
nnhy 9674739f6d 减少Time.Current的使用 2015-07-18 02:19:54 +00:00
nnhy 6c1a05349a TimeCost借助滴答数,精确计算耗时数 2015-07-17 08:54:56 +00:00
nnhy cf36ee0a90 完善任务统计信息 2015-07-15 08:31:40 +00:00
nnhy 6b8f12b948 强化任务调度管理,为了精确统计任务时间做准备 2015-07-15 07:59:35 +00:00