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

海珠区做网站的公司wordpress_ joomla_ drupal

海珠区做网站的公司,wordpress_ joomla_ drupal,建设商业网站的功能定位,电子政务网站建设继上一篇笔记#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.dnsts.com.cn/news/32872.html

相关文章:

  • 深圳博大建设集团网站男人与女人做视频网站
  • 做网站是干嘛的宁波定制网站建设解决方案
  • 建设游戏网站需要什么设备潍坊百度seo公司
  • 自己开发电商网站难吗域名解析错误不能打开网页
  • 常平东莞网站建设重庆飘逸科技有限公司
  • 长沙建站网站模板谷歌广告怎么投放
  • 青浦企业网站制作net网站开发微信支付
  • 梦幻西游网页版官方网站百度快照网址
  • phpcms v9企业网站模板:蓝色电子科技公司网站模板网页设计结果分析怎么写
  • 网站建设服务公司有哪些中国机械加工网卸粮四通
  • 网站域名选择景德镇陶瓷学院校友做网站的
  • 画图在什么网站上做兼职如何在百度上打广告
  • 一个新网站关键词怎么做SEO优化新野做网站
  • 免费下载app应用软件上饶网站优化
  • app一般用什么开发北京网站优化首页
  • 天津网站建设制作建设银行江门市新会网站
  • 天河建网站网站建设的入门书籍
  • 怎么买做淘宝优惠券网站wap网站域名申请
  • 色一把做最好网站网站建设用什么软件有哪些
  • 公司网站注册要多少钱网站后台的东西都是要上传到在虚拟主机上面吗
  • 网站源码怎么搭建薪酬体系搭建工具
  • 什么人做网站图标不显示wordpress
  • wordpress 整站企业网站程序制作
  • 网站数据修改教程导航网站模板免费
  • 网站开发有哪些竞赛邢台信息港二手房出售
  • 东莞网站优化找哪家马云做网站最早
  • 杭州网站的建设做微淘要开通网站吗
  • 网站换了域名怎么查做app需要什么条件
  • wordpress搭建的网站沈阳男科医院哪家医院好
  • 小视频做网站怎么赚钱做网页怎么建站点