RTT的一些自动初始化可以让自己的线程逻辑更灵活,但同时有以下一些疑问:
几种初始化的具体初始化什么内容?我的理解大家看是否正确
APP:项目逻辑功能验证的demo:如SPI/I2C的测试读写,网络芯片的C/S收发测试demo
2, 对于同类的APP初始化A和B,加入A里面申请了动态内存,此时1可以向里面写内容,B可以从中读取内容,也就是A要早于B,那么同样的APP初始化他们有先后什么吗?如果有是因为优先级来确定的吗?
希望关于自动初始化或者类似RTM_EXPORT(rt_thread_startup);专门做个专题讲讲,有非常多得疑惑。现在得问题时,如果碰到有先后关系得都不敢利用自动初始化或exprot方法,只能以extern 方式调用
希望关于自动初始化或者类似RTM_EXPORT(rt_thread_startup);专门做个专题讲讲,有非常多得疑惑。现在得问题 …
同一自动初始化优先级 在MDK 和 IAR环境下 可能会出现执行的顺序不一样
今天就碰到一个问题,AT24CXX软件包原来时EXPORT_CMD这个我屏蔽掉了,直接在Main函数中调用。依赖W5500的modbusTCP,我自己建的线程,也是main函数初始化调用;而TCP依赖的W5500的初始化时用的是exprot_env的,也就是先于main调用,而其中涉及需要用AT24CXX从eeprom中读取IP才能初始化,这就造成了顺序不匹配报错。
没办法,最终我的解决方法是将本在main中初始化的AT24CXX代码放到了W5500的初始化wiznet.init里面,还让它exprot_env可以了。
原来试过将exprot_env的函数放到main中初始化产生了非常严重的报错(上电后不能运行,显示memroy错误,详见我的其它帖子),只有深入项目中才会发现这个初始化问题很重要。如果理解不透,运用不好,在使用软件包时可能就是个大的问题