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

自学做网站一般要多久wordpress修改永久链接后无法访问

自学做网站一般要多久,wordpress修改永久链接后无法访问,毕业设计网站开发,wordpress降低使用内存目录 一、基于STM32CubeMX建立工程二、获取uC/OS-III源码三、代码移植1.复制uC/OS-III文件到工程文件夹2.工程组件和头文件路径的添加打开工程#xff0c;添加一下六个组添加文件到分组添加头文件路径 3.文件内容的修改启动文件app_cfg.hincludes.hbsp.c和bsp.hlib_cfg.happ.c… 目录 一、基于STM32CubeMX建立工程二、获取uC/OS-III源码三、代码移植1.复制uC/OS-III文件到工程文件夹2.工程组件和头文件路径的添加打开工程添加一下六个组添加文件到分组添加头文件路径 3.文件内容的修改启动文件app_cfg.hincludes.hbsp.c和bsp.hlib_cfg.happ.cmain.c 总结 实验内容学习嵌入式实时操作系统RTOS,以uc/OS为例将其移植到stm32F103上构建至少3个任务task:其中两个task分别以1s和3s周期对LED等进行点亮-熄灭的控制另外一个task以2s周期通过串口发送“hello uc/OS! 欢迎来到RTOS多任务环境” 一、基于STM32CubeMX建立工程 配置RCC 配置SYS 配置PA6和PB10为GPIO_Output 配置USART1 生成代码 二、获取uC/OS-III源码 官网下载地址https://www.silabs.com/developers/micrium 或者 链接https://pan.baidu.com/s/1PnPjS9vrpwOgGgeXGtoZhw 提取码9962 –来自百度网盘超级会员V1的分享 三、代码移植 1.复制uC/OS-III文件到工程文件夹 在项目中创建一个UCOSIII文件夹 将下载的源文件下的uC-CPU、uC-LIB、uCOS-III复制到该文件夹 在Src文件夹下新建一个OS文件夹 将下载的源码中\EvalBoards\Micrium\uC-Eval-STM32F107\uCOS-III下的文件app.c 、 app_cfg.h 、 cpu_cfg.h 、 includes.h 、 lib_cfg.h 、 os_app_hooks.c 、os_app_hook.h、os_cfg.h、os_cfg_app.h复制到该OS文件夹中 新建三个空白文件 bsp.c、bsp.h、app.h: 2.工程组件和头文件路径的添加 打开工程添加一下六个组 添加文件到分组 将Src/OS中的bsp.c 和 bsp.h文件添加至 bsp 组中将 app.c 添加进 Application/User/Core 组中 将UCOSIII/uC-CPU中的cpu_core.c、cpu_core.h、cpu_def.h添加进uCOSIII_CPU组中同时将UCOSIII/uC-CPU/ARM-Cortex-M3/RealView中的三个文件添加到该组 将UCOSIII/uC-LIB中的9个文件添加到uCOSIII-LIB组中同时将UCOSIII/uC-LIB/Ports/ARM-Cortex-M3/Realview中的lib_mem_a.asm添加到该组中 将UCOSIII/UcosIII/Ports/ARM-Cortex-M3/Generic/RealView中的3个文件添加的uCOSIII_Ports组中 将UCOSIII/UcosIII/Source中的20个文件添加到uCOSIII_Source组中 将Core/Src/OS中的以下图中的8个文件添加到OS_cfg组中 添加头文件路径 如图所示添加头文件路径 3.文件内容的修改 启动文件 将启动文件下图中的PendSV_Handler和Systick_Handler改为OS_CPU_PendSVHandler和OS_CPU_SysTickHandler 修改前 修改后 app_cfg.h 修改前 修改后 includes.h 添加3个头文件 #include gpio.h #include app_cfg.h #include app.h 修改前: 修改后: #include stm32f1xx_hal.hbsp.c和bsp.h bsp.c全部改为 // bsp.c #include includes.h#define DWT_CR *(CPU_REG32 *)0xE0001000 #define DWT_CYCCNT *(CPU_REG32 *)0xE0001004 #define DEM_CR *(CPU_REG32 *)0xE000EDFC #define DBGMCU_CR *(CPU_REG32 *)0xE0042004#define DEM_CR_TRCENA (1 24) #define DWT_CR_CYCCNTENA (1 0)CPU_INT32U BSP_CPU_ClkFreq (void) {return HAL_RCC_GetHCLKFreq(); }void BSP_Tick_Init(void) {CPU_INT32U cpu_clk_freq;CPU_INT32U cnts;cpu_clk_freq BSP_CPU_ClkFreq();#if(OS_VERSION3000u)cnts cpu_clk_freq/(CPU_INT32U)OSCfg_TickRate_Hz;#elsecnts cpu_clk_freq/(CPU_INT32U)OS_TICKS_PER_SEC;#endifOS_CPU_SysTickInit(cnts); }void BSP_Init(void) {BSP_Tick_Init();MX_GPIO_Init(); }#if (CPU_CFG_TS_TMR_EN DEF_ENABLED) void CPU_TS_TmrInit (void) {CPU_INT32U cpu_clk_freq_hz;DEM_CR | (CPU_INT32U)DEM_CR_TRCENA; /* Enable Cortex-M3s DWT CYCCNT reg. */DWT_CYCCNT (CPU_INT32U)0u;DWT_CR | (CPU_INT32U)DWT_CR_CYCCNTENA;cpu_clk_freq_hz BSP_CPU_ClkFreq();CPU_TS_TmrFreqSet(cpu_clk_freq_hz); } #endif#if (CPU_CFG_TS_TMR_EN DEF_ENABLED) CPU_TS_TMR CPU_TS_TmrRd (void) {return ((CPU_TS_TMR)DWT_CYCCNT); } #endif#if (CPU_CFG_TS_32_EN DEF_ENABLED) CPU_INT64U CPU_TS32_to_uSec (CPU_TS32 ts_cnts) {CPU_INT64U ts_us;CPU_INT64U fclk_freq;fclk_freq BSP_CPU_ClkFreq();ts_us ts_cnts / (fclk_freq / DEF_TIME_NBR_uS_PER_SEC);return (ts_us); } #endif#if (CPU_CFG_TS_64_EN DEF_ENABLED) CPU_INT64U CPU_TS64_to_uSec (CPU_TS64 ts_cnts) {CPU_INT64U ts_us;CPU_INT64U fclk_freq;fclk_freq BSP_CPU_ClkFreq();ts_us ts_cnts / (fclk_freq / DEF_TIME_NBR_uS_PER_SEC);return (ts_us); } #endif bsp.h: // bsp.h #ifndef __BSP_H__ #define __BSP_H__#include stm32f1xx_hal.hvoid BSP_Init(void);#endif 由于我们使用了printf函数需要在usart.c文件中添加以下代码完成printf重定向 //添加头文件#include stdio.h /* USER CODE BEGIN 1 */ int fputc(int ch,FILE *f){HAL_UART_Transmit(huart1,(uint8_t *)ch,1,0xffff);return ch; } /* USER CODE END 1 */ lib_cfg.h 加入宏定义 #define LIB_MEM_CFG_HEAP_SIZE 10u * 1024uapp.c #include includes.hmain.c 构建三个任务 本实验采用PA6口进行1s周期亮灭PB10口3s周期亮灭,通过串口每两秒发送“hello uc/OS! 欢迎来到RTOS多任务环境” #include main.h #include usart.h #include gpio.h #include includes.h/* 任务优先级 */ #define START_TASK_PRIO 2 #define LED0_TASK_PRIO 3 #define LED1_TASK_PRIO 3 #define MSG_TASK_PRIO 4/* 任务堆栈大小 */ #define START_STK_SIZE 96 #define LED0_STK_SIZE 64 #define LED1_STK_SIZE 64 #define MSG_STK_SIZE 64/*定义任务控制块*/ static OS_TCB StartTaskTCB; static OS_TCB Led0TaskTCB; static OS_TCB Led1TaskTCB; static OS_TCB MsgTaskTCB;/*定义任务堆栈*/ static CPU_STK START_TASK_STK[START_STK_SIZE]; static CPU_STK LED0_TASK_STK[LED0_STK_SIZE]; static CPU_STK LED1_TASK_STK[LED1_STK_SIZE]; static CPU_STK MSG_TASK_STK[MSG_STK_SIZE]; void SystemClock_Config(void);/*声明用户任务*/ void start_task(void *p_arg); static void led_PA6(void *p_arg); static void send_msg(void *p_arg); static void led_PB10(void *p_arg);/*主函数*/int main(void) {OS_ERR err;OSInit(err);HAL_Init();SystemClock_Config();//MX_GPIO_Init(); 这个在BSP的初始化里也会初始化MX_USART1_UART_Init(); /* 创建任务 */OSTaskCreate((OS_TCB *)StartTaskTCB, /* Create the start task */(CPU_CHAR *)start task,(OS_TASK_PTR ) start_task,(void *) 0,(OS_PRIO ) START_TASK_PRIO,(CPU_STK *)START_TASK_STK[0],(CPU_STK_SIZE) START_STK_SIZE/10,(CPU_STK_SIZE) START_STK_SIZE,(OS_MSG_QTY ) 0,(OS_TICK ) 0,(void *) 0,(OS_OPT )(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR),(OS_ERR *)err);/* 启动多任务系统控制权交给uC/OS-III */OSStart(err); /* Start multitasking (i.e. give control to uC/OS-III). */ } void start_task(void *p_arg) {OS_ERR err;CPU_SR_ALLOC();p_arg p_arg;/* YangJie add 2021.05.20*/BSP_Init(); /* Initialize BSP functions *///CPU_Init();//Mem_Init(); /* Initialize Memory Management Module */#if OS_CFG_STAT_TASK_EN 0uOSStatTaskCPUUsageInit(err); //统计任务 #endif#ifdef CPU_CFG_INT_DIS_MEAS_EN //如果使能了测量中断关闭时间CPU_IntDisMeasMaxCurReset(); #endif#if OS_CFG_SCHED_ROUND_ROBIN_EN //当使用时间片轮转的时候//使能时间片轮转调度功能,时间片长度为1个系统时钟节拍既1*55msOSSchedRoundRobinCfg(DEF_ENABLED,1,err); #endif OS_CRITICAL_ENTER(); //进入临界区/* 创建LED0任务 */OSTaskCreate((OS_TCB * )Led0TaskTCB, (CPU_CHAR * )led_PA6, (OS_TASK_PTR )led_PA6, (void * )0, (OS_PRIO )LED0_TASK_PRIO, (CPU_STK * )LED0_TASK_STK[0], (CPU_STK_SIZE)LED0_STK_SIZE/10, (CPU_STK_SIZE)LED0_STK_SIZE, (OS_MSG_QTY )0, (OS_TICK )0, (void * )0, (OS_OPT )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,(OS_ERR * )err); /* 创建LED1任务 */OSTaskCreate((OS_TCB * )Led1TaskTCB, (CPU_CHAR * )led_PB10, (OS_TASK_PTR )led_PB10, (void * )0, (OS_PRIO )LED1_TASK_PRIO, (CPU_STK * )LED1_TASK_STK[0], (CPU_STK_SIZE)LED1_STK_SIZE/10, (CPU_STK_SIZE)LED1_STK_SIZE, (OS_MSG_QTY )0, (OS_TICK )0, (void * )0, (OS_OPT )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,(OS_ERR * )err); /* 创建MSG任务 */OSTaskCreate((OS_TCB * )MsgTaskTCB, (CPU_CHAR * )send_msg, (OS_TASK_PTR )send_msg, (void * )0, (OS_PRIO )MSG_TASK_PRIO, (CPU_STK * )MSG_TASK_STK[0], (CPU_STK_SIZE)MSG_STK_SIZE/10, (CPU_STK_SIZE)MSG_STK_SIZE, (OS_MSG_QTY )0, (OS_TICK )0, (void * )0, (OS_OPT )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR, (OS_ERR * )err);OS_TaskSuspend((OS_TCB*)StartTaskTCB,err); //挂起开始任务 OS_CRITICAL_EXIT(); //进入临界区 }static void led_PA6 (void *p_arg) {OS_ERR err;(void)p_arg;BSP_Init(); /* Initialize BSP functions */CPU_Init();Mem_Init(); /* Initialize Memory Management Module */#if OS_CFG_STAT_TASK_EN 0uOSStatTaskCPUUsageInit(err); /* Compute CPU capacity with no task running */ #endifCPU_IntDisMeasMaxCurReset();/* Create Application Objects */while (DEF_TRUE){HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_RESET);OSTimeDlyHMSM(0, 0, 1, 0,OS_OPT_TIME_HMSM_STRICT,err);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_SET);OSTimeDlyHMSM(0, 0, 1, 0,OS_OPT_TIME_HMSM_STRICT,err);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */ } static void led_PB10 (void *p_arg) {OS_ERR err;(void)p_arg;BSP_Init(); /* Initialize BSP functions */CPU_Init();Mem_Init(); /* Initialize Memory Management Module */#if OS_CFG_STAT_TASK_EN 0uOSStatTaskCPUUsageInit(err); /* Compute CPU capacity with no task running */ #endifCPU_IntDisMeasMaxCurReset();while (DEF_TRUE){HAL_GPIO_WritePin(GPIOB,GPIO_PIN_10,GPIO_PIN_RESET);OSTimeDlyHMSM(0, 0, 3, 0,OS_OPT_TIME_HMSM_STRICT,err);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_10,GPIO_PIN_SET);OSTimeDlyHMSM(0, 0, 3, 0,OS_OPT_TIME_HMSM_STRICT,err);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */ }static void send_msg (void *p_arg) {OS_ERR err;(void)p_arg;BSP_Init(); /* Initialize BSP functions */CPU_Init();Mem_Init(); /* Initialize Memory Management Module */#if OS_CFG_STAT_TASK_EN 0uOSStatTaskCPUUsageInit(err); /* Compute CPU capacity with no task running */ #endifCPU_IntDisMeasMaxCurReset();/* Create Application Objects */while (DEF_TRUE){printf(hello uc/OS! 欢迎来到RTOS多任务环境 \r\n);OSTimeDlyHMSM(0, 0, 2, 0,OS_OPT_TIME_HMSM_STRICT,err);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */ }void SystemClock_Config(void) {RCC_OscInitTypeDef RCC_OscInitStruct {0};RCC_ClkInitTypeDef RCC_ClkInitStruct {0};RCC_OscInitStruct.OscillatorType RCC_OSCILLATORTYPE_HSI;RCC_OscInitStruct.HSIState RCC_HSI_ON;RCC_OscInitStruct.HSICalibrationValue RCC_HSICALIBRATION_DEFAULT;RCC_OscInitStruct.PLL.PLLState RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource RCC_PLLSOURCE_HSI_DIV2;RCC_OscInitStruct.PLL.PLLMUL RCC_PLL_MUL2;if (HAL_RCC_OscConfig(RCC_OscInitStruct) ! HAL_OK){Error_Handler();}RCC_ClkInitStruct.ClockType RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;RCC_ClkInitStruct.SYSCLKSource RCC_SYSCLKSOURCE_PLLCLK;RCC_ClkInitStruct.AHBCLKDivider RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider RCC_HCLK_DIV1;RCC_ClkInitStruct.APB2CLKDivider RCC_HCLK_DIV1;if (HAL_RCC_ClockConfig(RCC_ClkInitStruct, FLASH_LATENCY_0) ! HAL_OK){Error_Handler();} }void Error_Handler(void) {__disable_irq();while (1){}}#ifdef USE_FULL_ASSERTvoid assert_failed(uint8_t *file, uint32_t line) {} #endif 效果如下 总结 本次实验主要学习了stm32f103c8t6移植uC/OS-III操作系统的具体流程并完成了多任务创建实现的实验要求。 参考资料 STM32F103基于HAL库移植uC/OS-III_ucos iii hal移植到正点原子-CSDN博客 【STM32】Keil5在编译过程中出现.cannot open source input file “xxx.h“: No such file or directory的问题_keil no such file or directory-CSDN博客
http://www.hkea.cn/news/14323564/

相关文章:

  • 都有什么类别的网站广告设计软件cdr
  • 信息发布网站模板下载网站内容设计要求
  • 成都网站设计制作公司杭州市建设工程招标网
  • 手机网站友情链接怎么做如何查询网站接入商
  • 在线支付 网站模板企业管理系统大全免费
  • 做室内设计的网站有哪些淘宝客网站推广工具
  • 金融投资网站 php源码微墨小程序制作平台
  • 建筑工程行业网站建设方案小学学校网站建设培训资料
  • 网站收录下降的原因如何自己设计创建一个网站
  • wap网站需要什么服务器网站建设的计划
  • 自己做一个网站一年的费用中国交通建设监理协会官方网站
  • 龙华做网站联系电话查权重网站
  • 外贸建站专业公司做网站用属于前端
  • 网站首页的图标是怎么做的哈尔滨哪里做网站
  • 广昌网站建设制作国家网站域名
  • 电子商务网站建设具体方案西红门模板网站建设
  • 网站新媒体建设方案传奇网站如何建设
  • 如何注册一个网站域名备案重庆h5网站建设模板
  • 用网站ip做代理服务器网站被谷歌降权
  • 免费网站制作教程线上代运营
  • 建站技术布局方式太平洋保险网站
  • 湖州民生建设有限公司网站福州做网站的公
  • 塘厦东莞网站建设网站的规划与建设_按时间顺序可以分为哪等五个阶段
  • 网站做管制户外刀具智能小程序开发者平台
  • 您的网站空间已过期怎样在百度上免费做广告
  • 网站模板 html江苏建设人才考试网二建
  • 设计外贸网站公司app开发
  • 吉林省城乡建设部网站建设网站的
  • 网站联系方式设置要求互联网产品推广
  • 发布项目信息的平台企业网站seo网址