Part Number:CC2640R2F
您好,我正在参考这里的方式:http://software-dl.ti.com/lprf/sdg-latest/html/ble-stack-3.x/custom-hardware.html#using-32-khz-crystal-less-mode
使用simple_peripheral_oad_offchip例程来开启现内部RC振荡器。
我发现要将ccfg_app_ble_rcosc.c中这个宏设置为0,SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM 0x0,程序才能运行。
请问这个宏是什么作用的呢? 我不太理解GPRAM CACHE这些概念和作用。
另外,若要使用内部RC校准,需要使用RCOSC_enableCalibration这个函数,请问这个函数在APP中使用,而不是在BIM中,那实际的校准效果是一样的吗?
Kevin Qiu1:
这个宏就是是否开启了cache,默认设置是使能了cache的
#define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM 0x0 // Cache is disabled and GPRAM is available at 0x11000000-0x11001FFF#define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM 0x1 // Cache is enabled and GPRAM is disabled (unavailable)
zhenhua He 说:若要使用内部RC校准,需要使用RCOSC_enableCalibration这个函数,请问这个函数在APP中使用,而不是在BIM中,那实际的校准效果是一样的吗?
https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1006554/cc2640r2f-how-to-use-simple_peripheral_oad_offchip-to-set-the-internal-rc-oscillator
Clément 已经说明了,OAD应用是在BIM中设置的
,
zhenhua He:
Kevin Qiu1 说:这个宏就是是否开启了cache,默认设置是使能了cache的
那为什么要禁用Cache,程序才能运行呢?
,
Kevin Qiu1:
检查下预定义中是否多添加了CACHE_AS_RAM,然后看下SRAM的使用情况
,
zhenhua He:
Kevin Qiu1 说:检查下预定义中是否多添加了CACHE_AS_RAM
有添加CACHE_AS_RAM,应该去掉是吗?为什么呢?
,
Kevin Qiu1:
添加了CACHE_AS_RAM就没有cache空间了,就得选SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM 0x0
不添加CACHE_AS_RAM,就不用修改SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM
两者只能选一个
,
YiKai Chen:
添加了CACHE_AS_RAM一般是因為RAM不夠用才這樣做,TI BLE 例程一般预定义中是不會添加CACHE_AS_RAM的,你的project是接手別人的嗎?
,
zhenhua He:
YiKai Chen 说:你的project是接手別人的嗎?
是的呢。
,
YiKai Chen:
那應該就是上一手因為RAM不夠用才添加了CACHE_AS_RAM,你可能要梳理一下上一手的程序,不然任意移除可能會有問題
,
zhenhua He:
谢谢! YiKai Chen Kevin Qiu1
我现在有另一个疑问,使用simple_peripheral_oad_offchip例程BIM编译生成的HEX,地址是0x1E000,这个0x1E000地址是在哪里设置的呢?
我是用IAR开发的,编译后SET_CCFG_IMAGE_VALID_CONF_IMAGE_VALID是0x1F000。为什么不是用0X1E000呢?
,
YiKai Chen:
OAD相關的資訊建議你參考一下 dev.ti.com/…/index-oad-cc2640.html