当前位置: 首页 > news >正文

网站模板下载 网盘路飞 wordpress

网站模板下载 网盘,路飞 wordpress,seo提升排名,PHP网站开发技术期末作品一、写在前面 关于源码的下载#xff0c;以及在KEIL工程里面添加操作系统的源代码#xff0c;这里就不再赘述了。需要注意的是RT-thread默认里面是会使用串口的#xff0c;因此需要额外的进行串口的初始化#xff0c;有些人可能会问#xff0c;为什么不直接使用CubMAX直接…一、写在前面 关于源码的下载以及在KEIL工程里面添加操作系统的源代码这里就不再赘述了。需要注意的是RT-thread默认里面是会使用串口的因此需要额外的进行串口的初始化有些人可能会问为什么不直接使用CubMAX直接进行系统的移植经过我的尝试发现这个玩意移植的RT-thread会有一些小的bug比如直接生成的代码FinSH工作不正常修改方法和第七节一样。虽然整个系统的调度啥的都是正常的。因此我决定另辟蹊径其他的功能使用CubMAX进行设置因为他简直太方便了然后RT-thread的移植采用手动的方法进行。 二、移植前的准备工作 因为RT-thread的源码里面有这些中断处理函数的实现因此需要将上面的这些都关闭掉不然编译会出现重复定义的错误。 我这里使用的是串口1因此先完成他的相关设置。 三、将RT-thread的源码添加到工程里面 都添加进行以后然后不要忘了设置头文件的包含路径。 四、进行第一次的编译 会发现错误很多不慌。透过查看错误发现是因为va_list没有定义引起的我们知道va_list是定义在stdarg.h里面的然后通过观察头文件的包含发现这个头文件在下面这个文件里面定义着显然是因为RT_USING_LIBC这个宏没有打开导致的。在rtconfig.h里面添加这个宏定义即可。 五、进行第二次编译 我们发现编译很成功没有错误也没有警告这时你可能已经觉得成功了我只能说我当时也是这么想的结果发现程序运行那是相当的不正常。需要解决这个问题我们得知道RT-thread启动的流程其实你只需要知道他在运行我们的main函数之前会运行一段自己的代码 然后我们进入这个函数发现这里是关于系统的初始化有很多。 接下来我们进入第一个初始化函数里面。将串口的初始化放在这里注意需要包含相关的头文件。有了串口我们就可以使用printf函数来进行调试了。 当我们进入到第二个初始化函数里面我们发现这里有一些输出但是要想使用这些输出我们需要实现void rt_hw_console_output(const char *str)这个函数在board.c里面其实已经有关于这个函数的实现他是用RT_USING_CONSOLE这个宏来进行控制的因此需要在trconfig.h里面打开这个宏 你会发现串口里面还是没有我们想要的输出通过观察发现虽然我们自己将串口进行了初始化但是系统这里使用的是串口2因此需要将他改成你初始化的那个串口我这里改成串口1。 到这里我们的串口就能正常工作了。下面这个是串口的输出。 到这里如果你创建一个任务然后你会神奇的发现这个任务好像并没有执行也就是说我们的系统并没有完全初始化成功。因为在RT-thread里面创建任务的时候有两种分配内存的方式第一种就是静态分配第二种就是动态分配。RT-thread默认使用的是动态分配我想会不会是这里的问题我就将关于动态分配的相关配置注释掉了。到这里整个系统就算是初始化完毕也正常运行起来了。需要注意的是我们这里所有的内存分配都是静态的因此创建变量的时候一定要分配它的大小不然会有很奇怪的问题。 六、使用静态方式创建任务 static struct rt_thread led1_thread; /* 线程主体函数 */ static void led1_thread_entry(void* parameter); /* 定义线程栈 */ static rt_uint8_t rt_led1_thread_stack[1024];static struct rt_thread led0_thread; /* 线程主体函数 */ static void led0_thread_entry(void* parameter); /* 定义线程栈 */ static rt_uint8_t rt_led0_thread_stack[1024];int main(void) {MX_GPIO_Init();/* USER CODE BEGIN 2 */rt_thread_init(led1_thread, /* 线程控制块 */led1, /* 线程名字 */led1_thread_entry, /* 线程入口函数 */RT_NULL, /* 线程入口函数参数 */rt_led1_thread_stack[0], /* 线程栈起始地址 */sizeof(rt_led1_thread_stack), /* 线程栈大小 */3, /* 线程的优先级 */20); /* 线程时间片 */rt_thread_init(led0_thread, /* 线程控制块 */led0, /* 线程名字 */led0_thread_entry, /* 线程入口函数 */RT_NULL, /* 线程入口函数参数 */rt_led0_thread_stack[0], /* 线程栈起始地址 */sizeof(rt_led0_thread_stack), /* 线程栈大小 */4, /* 线程的优先级 */20); /* 线程时间片 */rt_thread_startup(led1_thread);rt_thread_startup(led0_thread); while (1){}}//LED1线程 static void led1_thread_entry(void* parameter) { while(1){LED1 0;rt_thread_delay(200); /* 延时200个tick */rt_kprintf(led1_thread running,LED1_ON\r\n);LED1 1; rt_thread_delay(500); /* 延时500个tick */rt_kprintf(led1_thread running,LED1_OFF\r\n);} }static void led0_thread_entry(void* parameter) { while(1){LED0 0;rt_thread_delay(200); /* 延时200个tick */rt_kprintf(led0_thread running,LED0_ON\r\n);LED0 1; rt_thread_delay(500); /* 延时500个tick */rt_kprintf(led0_thread running,LED0_OFF\r\n);} } 七、实现FinSH 这个头文件你可以通过CubMAX来生成也可以在项目例程里面复制一个。然后运行有可能你的会运行成功有可能并不会成功。失败的界面是这样的 成功的界面是这样的 如果失败了尝试调整下图的参数即可。
http://www.hkea.cn/news/14491259/

相关文章:

  • 投资网站排行天体摄影
  • 怎么查网站是哪个建站公司做的免费公司网站建站
  • 做画册的网站百度搜索量排名
  • 企业网站策划建设方案百度注册网站不需要手机验证的
  • 手机网站建设最新报价一家电子商务网站建设心得
  • 网站主要内容各地微信推广平台大全
  • 网站建设深易站网站建设
  • 金华企业做网站做网站的一般要多钱
  • 用servlet做外卖网站qq在线登录手机版
  • 做几个小网站还是做一个大网站wordpress代理管理多站点
  • 金湖县网站建设wordpress 语法编辑器
  • 贵州中小型营销型网站建设公司做家乡网站代码
  • 建设网站有什么法律么网络广告营销的案例
  • 购物网站开发需求文档七牛云wordpress+代码
  • 中国建设培训网站查询系统江苏省建设工程管理局网站
  • 域名备案时网站名称兴安盟seo
  • 建设网站必须要服务器吗甘肃路桥建设集团公司网站
  • 网站设计要求有哪些音乐网站开发代码
  • php网站识别手机许昌永诚网络科技有限公司
  • 杭州网站建设q479185700棒网站设计协议
  • 域名注册网站那个好工业部网站备案
  • 建企业网站一般多少钱微网站开发技术
  • 网站搭建需要什么阳朔到桂林北
  • 做百度网站排安全联盟网站认证
  • 上海松江做网站多少钱怎么做网站加盟
  • 网站建设外包平台免费公司网站制作
  • 建好网站是不是每年都要交钱网站由哪些部分组成部分组成
  • 自己建网站要什么crm公司
  • 网站模板建设教程网站建设公司咨询电话
  • 南阳网站建设赛科企业展示型网站建设