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

怎么在手机上做企业网站北京大学两学一做网站

怎么在手机上做企业网站,北京大学两学一做网站,旅游去过的地方可做标识网站,网页版传奇176继上一篇笔记#xff0c;搭建好STM32的编译框架#xff0c;编译出来的OHOS_Image.bin并不能跑不起来。 今天要在bsp里面添加一些代码#xff0c;让程序能跑起来。 先从裸机点亮LED灯开始#xff0c;准备以下3个文件:startup和system文件可以用OHOS官方代码。 /device/boar…继上一篇笔记搭建好STM32的编译框架编译出来的OHOS_Image.bin并不能跑不起来。 今天要在bsp里面添加一些代码让程序能跑起来。 先从裸机点亮LED灯开始准备以下3个文件:startup和system文件可以用OHOS官方代码。 /device/board/demo/demo_board/liteos_m/bsp/src/main.c /device/board/demo/demo_board/liteos_m/bsp/src/system_stm32f4xx.c /device/board/demo/demo_board/liteos_m/bsp/src/startup_stm32f407xx.s main.c里面做最简单的初始化由于官方soc提供的st库是HAL库因此用HAL库点亮LED。 #include stm32f4xx_hal.hvoid HAL_MspInit(void) {__HAL_RCC_SYSCFG_CLK_ENABLE();__HAL_RCC_PWR_CLK_ENABLE(); }void SystemClock_Config(void) {RCC_OscInitTypeDef RCC_OscInitStruct {0};RCC_ClkInitTypeDef RCC_ClkInitStruct {0};__HAL_RCC_PWR_CLK_ENABLE();__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);RCC_OscInitStruct.OscillatorType RCC_OSCILLATORTYPE_HSE;RCC_OscInitStruct.HSEState RCC_HSE_ON;RCC_OscInitStruct.PLL.PLLState RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource RCC_PLLSOURCE_HSE;RCC_OscInitStruct.PLL.PLLM 25;RCC_OscInitStruct.PLL.PLLN 336;RCC_OscInitStruct.PLL.PLLP RCC_PLLP_DIV2;RCC_OscInitStruct.PLL.PLLQ 7;HAL_RCC_OscConfig(RCC_OscInitStruct);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_DIV4;RCC_ClkInitStruct.APB2CLKDivider RCC_HCLK_DIV2;HAL_RCC_ClockConfig(RCC_ClkInitStruct, FLASH_LATENCY_5); }//我的板子上有个LED连接在PA4 static void LED_Blink(void) {GPIO_InitTypeDef GPIO_InitStruct {0};__HAL_RCC_GPIOA_CLK_ENABLE();GPIO_InitStruct.Pin GPIO_PIN_4;GPIO_InitStruct.Mode GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull GPIO_PULLUP;GPIO_InitStruct.Speed GPIO_SPEED_FREQ_VERY_HIGH;GPIO_InitStruct.Alternate 0;HAL_GPIO_Init(GPIOA, GPIO_InitStruct);while(1){HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);HAL_Delay(500);HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET);HAL_Delay(500);} }int main(void) {HAL_Init();SystemClock_Config();LED_Blink(); }这段代码初始化LED引脚然后500ms改变1次LED状态。 这里面用到HAL_Delay函数是由Systick中断驱动的延时函数也考验中断能不能正常运行。 文件准备好了还要把文件加入到编译工程里 修改/home/openharmony/device/board/demo/demo_board/liteos_m/bsp/BUILD.gn 把源码路径添加到sources变量里面。 # /home/openharmony/device/board/demo/demo_board/liteos_m/bsp/BUILD.gn # kerndev.blog.csdn.netimport(//kernel/liteos_m/liteos.gni)module_name get_path_info(rebase_path(.), name) kernel_module(module_name) {sources [src/startup_stm32f407xx.s,src/system_stm32f4xx.c,src/main.c,] }config(public) {defines [STM32F407xx,STM32F40_41xxx,]include_dirs [include,//device/soc/st/stm32f4xx/sdk/Core/Inc,//device/soc/st/stm32f4xx/sdk/Drivers/STM32F4xx_HAL_Driver/Inc,//device/soc/st/stm32f4xx/sdk/Drivers/CMSIS/Device/ST/STM32F4xx/Include,]ldflags [-Wl,-T rebase_path(ld/STM32F407IG_FLASH.ld),-Wl,-u_printf_float,]libs [c,m,nosys,] } 然后开始编译编译通过把OHOS_Image.bin下载到板子里看看LED灯亮不亮。 运气好的话LED正常闪烁。 下载程序后如果LED没有闪烁需要排查以下问题 1.程序链接地址错误。 在STM32F407IG_FLASH.ld文件里定义了FLASH和RAM地址没有bootloader的情况下FLASH起始地址应该是0x080000000。 ...... /* Specify the memory areas */ MEMORY { RAM (xrw) : ORIGIN 0x20000000, LENGTH 128K CCMRAM (xrw) : ORIGIN 0x10000000, LENGTH 64K FLASH (rx) : ORIGIN 0x8000000, LENGTH 512K } ...... 2.中断向量表没有链接到BIN起始位置。 在STM32F407IG_FLASH.ld文件里定义了中断向量表的区块.isr_vector需要检查startup.s里面的向量表定义是否定义在.isr_vector代码段。 ...... /* Define output sections */ SECTIONS {/* The startup code goes first into FLASH */.isr_vector :{. ALIGN(4);KEEP(*(.isr_vector)) /* Startup code */. ALIGN(4);} FLASH...... 3.中断向量表重映射地址错误。 在system_stm32f4xx.c文件里SystemInit函数会修改中断向量表位置取决于USER_VECT_TAB_ADDRESS宏定义。 void SystemInit(void) {/* FPU settings ------------------------------------------------------------ */ #if (__FPU_PRESENT 1) (__FPU_USED 1)SCB-CPACR | ((3UL 10*2)|(3UL 11*2)); /* set CP10 and CP11 Full Access */ #endif#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)SystemInit_ExtMemCtl(); #endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM *//* Configure the Vector Table location -------------------------------------*/ #if defined(USER_VECT_TAB_ADDRESS)SCB-VTOR VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ #endif /* USER_VECT_TAB_ADDRESS */ } 4.中断函数SysTick_Handler配置错误。 在startup_stm32f407xx.s文件里找看中断向量表的定义其中SysTick_Handler位置写的是哪个函数为了HAL库正常使用可以将其修改为HAL_IncTick .section .isr_vector,a,%progbits.type g_pfnVectors, %object.size g_pfnVectors, .-g_pfnVectorsg_pfnVectors:.word _estack.word Reset_Handler.word HalExcNMI.word HalExcHardFault.word HalExcMemFault.word HalExcBusFault.word HalExcUsageFault.word 0.word 0.word 0.word 0.word SVC_Handler.word DebugMon_Handler.word 0.word HalPendSV.word HAL_IncTick //之前是OsTickHandler 5.闪烁频率不正常 检查System_Config()函数的时钟配置根据板子上的晶振频率修改PLL设置。 检查system_stm32f4xx.c里面SystemCoreClock的值是否和运行频率一致。
http://www.pierceye.com/news/99132/

相关文章:

  • 网站流量用完了重庆网站推广
  • 网站管理助手数据库网站在建设中无法访问
  • 网站标题格式建设网站南昌
  • wordpress作企业网站好吗沈阳短视频制作公司
  • 表格网站怎么做的作文网站大全
  • 比特币网站建设专业网站建设企业网站制作
  • 故宫博物院官网网站咋做的山东省济宁市最新消息
  • 天河营销型网站建设html网页设计代码作业正能量
  • 国外网站设计欣赏智能获客系统
  • 济南网站建设599网站建设完工后在什么科目核算
  • 学校网站的作用app营销推广方式
  • 怎么做网站互换链接重庆工程建设信息网官网查询
  • 刚开始做网站要传数据库吗赛迪建设网站
  • 网站网络推广教程手机html网站开发视频
  • 网站弹出广告代码口碑好的龙岗网站建设
  • 东莞网站建设-搜盟网电商的运营推广
  • 美发网站 源代码网站建设的博客
  • 做电影视频网站赚钱嘛安溪人做的网站
  • 网站建设基础代码赣州专门网公司
  • 购物网站答辩ppt怎么做网站开发环境
  • 做网站的费用计入销售费用吗做装修效果图的网站
  • 企业网站制作深圳免费域名映射
  • 安徽建设厅网站施网站的静态页面谁做
  • 网站内页seo桂林山水甲天下是哪个景点
  • 外贸网站免费建站小榄网站建设公司
  • 做旅游网站赚钱吗wordpress模板调用自定义插件
  • 南宁手机网站建设工艺品做网站
  • 可以下载电影的网站怎么做适合程序员的wordpress主题
  • 哪些网站微信支付平台建设网站软件
  • 做系统网站赚钱做爰网站有哪些