许多微控制器在烧录之前需要一个自定义的初始化序列来初始化目标硬件,例如初始化pll时钟,关闭看门狗或定义flash的等待状态。在使用这些对初始化过程有特殊要求的芯片时,在segger j-flash软件中创建工程时需要设置芯片的初始化序列。
打开j-flash软件,在options->project settings选项中,可以设置芯片的初始化和烧录成功后需要执行的动作。
j-flash支持设置的初始化命令包括读写特定地址、校验、暂停cpu和设置芯片复位方式等。支持的完整的指令列表请参考j-flash用户手册中的介绍。下面简单介绍一些常用的初始化指令。
reset:设置芯片的复位方式,如硬件复位或软件复位等,某些芯片需要的特殊复位方式也需要通过该命令进行设置。
delay:延时一段时间。
write 32bit:向指定地址写入32位的数据。注意所有的 write *命令只能用于写入ram或sfr寄存器,而不能将数据写入到flash闪存地址。要修改写入到flash区域的数据只能通过改变烧录文件来实现。烧录文件可以通过使用 write file*命令在初始步骤中修改。
write file 32bit:向烧录文件中的指定地址中写入32位的数据,用于修改要烧录的固件。
halt:暂停cpu。
go:cpu开始运行。
下面通过at91sam7s256该芯片的初始化序列设置来帮助理解,在init.steps选项设置的comment一栏可以添加注释,用于记录该行命令所要实现的功能。
如上图所示,在该芯片的初始化序列中共设置了8条指令,下面将介绍这些指令具体完成的工作。
指令0:无延时立即执行复位动作,复位模式是模式8。该复位方式是用于atmel at91sam7内核芯片的特定复位模式,该模式通过写芯片的rstc_cr寄存器来复位外设。复位外设会使所有外设处于定义的复位状态。这包括内存映射寄存器,这意味着复位后flash被映射到地址0。jlink支持的所有复位模式的介绍请参考j-link的用户手册。
指令1:向0xfffffd44(看门狗定时模式寄存器)地址写入数据0x00008000这个值来关闭看门狗。
指令2:向0xffffff60(mc flash模式寄存器)地址写入数据0x00320300这个值来设置flash的等待状态。
指令3:向0xfffffc20(pmc寄存器)地址写入数据0x00000601这个值来初始化pll时钟。
指令4:延时200ms。
指令5:向0xfffffc2c(pll寄存器)地址写入数据0x00191c05这个值来设置pll时钟和分频系数。
指令6:延时200ms。
指令7:向0xfffffc30(pmc寄存器内的特定位)地址写入数据0x00000007这个值来选择系统时钟和外设时钟。
本文中我们介绍了如何在j-flash中设置芯片的初始化序列,该功能令j-flash软件能够适配更多类型的芯片,进而更好的满足用户需求。
小米年年缺货已成常态是套路也是无奈
苹果手机指纹解锁不灵敏怎么办
运放内部电路结构涉及知识点讲解
软通动力彭强:AIGC 加速工业元宇宙价值创造
ISP pipeline 流程图及功能模块简述
如何在Segger J-Flash中设置芯片初始化序列?
第四代TOPSwitch?GX系列单片开关电源
实测iPhone5S、iPhone6、iPhoneSE升级iOS10.3.2速度对比,苹果又推送iOS10.3.3最新版只为迎接iOS11!
如何在人与汽车之间构建一个交互系统?
丰田计划在未来十年内将氢燃料电池登月车送上月球
上海有望成为中国民航发动机制造中心
浅谈8大5G+AGV/AMR应用案例
如何判断语音模块的质量
骁龙移动平台协助你在游戏战场上纵横驰骋
智能电表怎么恢复通电 智能电表怎样抄表
无功补偿的优点_无功补偿的缺点
虚拟内存怎么设置
情怀值钱吗?诺基亚Nokia6:红米3S处理器,价却超小米5
2021除甲醛空气净化器品牌排行榜,哪个效果比较好
高频PCB设计出现干扰的解决方案