华大开发笔记

前言

记录一下在开发华大芯片过程中遇到的一些小问题和心得,留作笔记,常看常新。

遇到的问题

1、关于切换时钟源问题

当工程从boot程序跳转到app程序后,需要切换时钟源。L13x系列芯片默认时钟源为内部高速时钟,频率为4MHz,需要切换至内部高速时钟,24MHZ。

切换方式有两种,一是直接升频,二是通过切换时钟源后再升频,实测个人项目中采用方法二

//方法一 直接对内部高速时钟源进行升频
_SysctrlUnlock();
Sysctrl_SetHCLKDiv(SysctrlHclkDiv128);
Sysctrl_SetRCHTrim(SysctrlRchFreq24MHz);
_SysctrlUnlock();
Sysctrl_SetHCLKDiv(SysctrlHclkDiv1);
//方法二 先切换内部低速时钟在切换内部高速时钟
Sysctrl_SetRCHTrim(SysctrlRchFreq4MHz);
Sysctrl_SetRCLTrim(SysctrlRclFreq32768);
Sysctrl_ClkSourceEnable(SysctrlClkRCL, TRUE);
Sysctrl_SysClkSwitch(SysctrlClkRCL);
Sysctrl_SetRCHTrim(SysctrlRchFreq24MHz);
Sysctrl_SysClkSwitch(SysctrlClkRCH);
Sysctrl_ClkSourceEnable(SysctrlClkRCL, FALSE);

2、关于无法进入定时器中断问题

因开发项目采用时间片轮询法模拟程序前后台,在boot跳转至app程序后,无法进入定时器中断,触发对应时间标志位。

调整方法为:修改.s文件中,app代码段的启动地址,并重新编译,且需要注意keil的编译版本。实测个人项目在使用6版本编译存在问题,切换至5版本后正常,后再次切换6版本后也正常

3、关于flash擦除失败问题

解决办法:查阅手册找到flash擦除步骤,打开官方flash.c文件找到扇区擦除函数对比,发现该函数中解除写保护位置与手册中提供的步骤不一致。

以下为原擦除函数

//原擦除函数
en_result_t Flash_Sec
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值