一,前言
最近在看os,那么我就想要自己动手移植下,但是stm32已经有完整的参考包了,我就想到挑选一个冷门的板子玩玩,从资源利用角度我家的linux开发板bb black把它降级为单片机就是cortex-A8且外设都是高级货。想想都觉得好玩。
二,如何将bb black当做单片机玩
-
搜索了下调试口是预留的,属于ctjag,pin脚看起来不是标准的jtag,所以保险起见我还是不用jlink调试器,决定买官网推荐的xds100v2。jtag口是贴片1.27的20pin,而调试器是14pin 2.54的,所以我要自己做转接,最简单的是自己焊接线,这个方案有风险,1.27间距我没信心。所以双11我就开始买买买。采购的元器件今天到货了,所以抓紧焊接接插件到转接板和开发板上。
双十一到货.jpg -
进行了test连接验证,验证通过,证明cjtag硬件连线及设备都正常。
通信成功.png
三,bb black的ccs8调试环境搭建
cjtag正常,我就觉得应该很顺利了,没想到折腾了我2个小时。因为一直无法连接target,板子一直在运行,后来才找到窍门。具体步骤如下
-
AM335X_StarterWare_02_00_01_01包中编译gpio工程,需要先编译lib库
ccs编译lib库依赖项.png -
配置debug选择
在general中选择自动,就无需手工配置
自动配置target调试.png
如下红色千万不要选
debug项的重要配置.png -
如下4项都是unknown,此时右键进行连接
一开始应该是失败,然后要先按开发板的s2 reset按钮,放手后,在ccs中选择右键连接,就可以正常连接上。
ccs连接target.png
注意:若出现提示"CortxA8: Error connecting to the target: (Error -1170 @ 0x0) Unable to access the DAP. Reset the device, and retry the operation."只要先进行单片机复位,然后再点击按钮retry或右键重新连接即可,板子reset后,上位机等1s就要进行重连操作,时间要搭配好。
- 在右下角窗口添加gel脚本(路径在ccs安装包中),点击菜单栏的script选择第一个初始化系统,初始化成功如下信息
D:\ti\ccsv6\ccs_base\emulation\boards\beaglebone\gel
目录下选择,beagleboneblack.gel
CortxA8: Output: **** AM335x BeagleBlack Initialization is in progress ..........
CortxA8: Output: **** AM335x ALL PLL Config for OPP == OPP100 is in progress .........
CortxA8: Output: Input Clock Read from SYSBOOT[15:14]: 24MHz
CortxA8: Output: **** Going to Bypass...
CortxA8: Output: **** Bypassed, changing values...
CortxA8: Output: **** Locking ARM PLL
CortxA8: Output: **** Core Bypassed
CortxA8: Output: **** Now locking Core...
CortxA8: Output: **** Core locked
CortxA8: Output: **** DDR DPLL Bypassed
CortxA8: Output: **** DDR DPLL Locked
CortxA8: Output: **** PER DPLL Bypassed
CortxA8: Output: **** PER DPLL Locked
CortxA8: Output: **** DISP PLL Config is in progress ..........
CortxA8: Output: **** DISP PLL Config is DONE ..........
CortxA8: Output: **** AM335x ALL ADPLL Config for OPP == OPP100 is Done .........
CortxA8: Output: **** AM335x DDR3 EMIF and PHY configuration is in progress.........
CortxA8: Output: EMIF PRCM is in progress .......
CortxA8: Output: EMIF PRCM Done
CortxA8: Output: DDR PHY Configuration in progress
CortxA8: Output: Waiting for VTP Ready .......
CortxA8: Output: VTP is Ready!
CortxA8: Output: DDR PHY CMD0 Register configuration is in progress .......
CortxA8: Output: DDR PHY CMD1 Register configuration is in progress .......
CortxA8: Output: DDR PHY CMD2 Register configuration is in progress .......
CortxA8: Output: DDR PHY DATA0 Register configuration is in progress .......
CortxA8: Output: DDR PHY DATA1 Register configuration is in progress .......
CortxA8: Output: Setting IO control registers.......
CortxA8: Output: EMIF Timing register configuration is in progress .......
CortxA8: Output: EMIF Timing register configuration is done .......
CortxA8: Output: PHY is READY!!
CortxA8: Output: DDR PHY Configuration done
CortxA8: Output: **** AM335x BeagleBlack Initialization is Done ******************
-
加载out文件进行调试
run->load->load program选择编译好的out文件。可以正常调试。
ccs中断及变量调试.png
四,小结
万事开头难,特别是没有清晰的帮助资料的时候。比较我现在不是在做创造发明,而是在找使用说明书,进行工具使用。好了,环境搭建好,之后就可以把bb black这个linux开发板降级为单片机玩咯~
网友评论