你好dialog
我使用外部闪光灯W25x20进行数据存储,但是当SPI初始化完成时,我无法通过“jedec_id = spi_read_flash_jedec_id()读取jedec_id;”在函数spi_flash_auto_detect();
Set_Pad_Functions()中的接口设置如下:
GPIO_ConfigurePin( GPIO_PORT_0, GPIO_PIN_0, OUTPUT, PID_SPI_CLK, false );
GPIO_ConfigurePin( GPIO_PORT_0, GPIO_PIN_6, OUTPUT, PID_SPI_DO, false );
GPIO_ConfigurePin( GPIO_PORT_0, GPIO_PIN_3, OUTPUT, PID_SPI_EN, true );
gpio_configurepin(gpio_port_0,gpio_pin_5,输入,pid_spi_di,true);
并且在主循环之前初始化:
spi_flash_init(0x40000,0x100);
spi_flash_enable(GPIO_PORT_0, GPIO_PIN_3);
/*
************************************************************************************
*Main loop
************************************************************************************
* /
while(1)
{
}
我can't read the JEDEC_ID in function spi_flash_auto_detect().is that any incorrect .

你好车道,
请查看SDK5中的Peripheral_examples目录中的SPI_FLASH示例,以检查Jedec_ID如何从SPI_FLASH_AUTO_DETECT()函数读取。示例代码能够读取W25x20 SPI内存闪存,而无需任何修改。
Thanks MT_dialog
你好,
我拍摄了“BLE_APP_PERITERWAL”示例并完成了代码的一些更改。截至目前我正在使用Keil Uvision V5.17.0.0(Trail版本)和使用SDK(DA14583)
案例1:在RAM中工作,但在闪存中工作
它在RAM中正常工作(即开发模式)。如果我通过使用“SmartSnippets”工具在Flash中下载相同的代码,则无法正常工作。即使我无法在移动侧Android应用程序上看到BLE设备名称(在闪存中加载图像时)。
Program Size: Code=19784 RO-data=3276 RW-data=80 ZI-data=8924
Case 2: Not working both in RAM as well as in FLASH
我f the code size is as mentioned below, Application image is not working in both RAM and FLASH.
Program Size: Code=21612 RO-data=3276 RW-data=80 ZI-data=9004
Please help me resolve the issue.
有任何内存约束。DA14583中的RAM使用率占用的主要和次级引导加载程序代码的内存将占用。
你好,
When downloading your firmware to flash via SmartSnippets, please make sure 'bootable' is selected. Or you could also enable the log printing by defining the macro CFG_PRINTF to see if the firmware executes successfully.
你好,
我在开发板上使用了LED指示而不是使用CFG_PRINTF。我已经评论了我的代码,将LED相关代码放在BLE外围代码中。我在闪存中放置了应用程序图像(具有LED代码+ BLE外围代码)。它在闪存中工作。如果我包括我的代码(具有我的应用程序代码+ LED代码+ BLE外围代码),那么都在一起在RAM中工作。但如果代码(具有我的应用程序代码+ LED代码+ BLE外围代码),则加载在闪存中,则它不起作用。甚至带领眨眼也不会来。我怀疑代码大小可能会创建一个问题。我按照正确的过程,能够访问闪光灯来编写应用程序图像。我面临着较高尺寸的代码的问题。 Please help to resolve the issue.
你好Mahesh.,
There isn't any special code limitation in the 583, Its a bit weird for the code to run from SYSRAM (i suppose that you download it via keil) and not to work via the flash due to code size. I suppose that the code doesn't boot from the flash at all for some reason or in case you use sleep perhaps it doesn't ever wake up. Can check if you can boot via flash using the proximity example, its has larger code than your custom application (Code=23636 RO-data=3220 RW-data=128 ZI-data=8008). Also to check if your application boots properly and starts you can turn on that LED when the system starts in the periph_init function just to check if the application boots.
Thanks MT_dialog
你好,
我尝试使用“prox_reporter”示例。Prox_reporter在RAM和闪存中工作,但代码大小是
Program Size: Code=22868 RO-data=3220 RW-data=128 ZI-data=8008 (In uVision V5.17.0.0).
我will check as per your suggestion. Here doubt is, my application image is working RAM, why it is not working in the Flash.
is any context will be there like this.?
你好,
我s bootable selected when flashing the firmware into flash via SmartSnippets? Also, remember to do an erase before write.
你好
我am erasing and then burning the application image. I have selected bootable only..
你好Mahesh.,
关于接近示例,我一直在寻找修改后的接近程序,为什么我的邻近代码更大,但即使是图像大于您尝试下载的自定义程序,所以我不认为有问题尺寸。它必须存在于应用程序中的错误,在您的自定义代码中,您是否与SPI完全接口?另请确保您的代码靴SPI,确保在启动时在580中下载该程序,尝试使用外围初始化中的LED检查它。
Thanks MT_dialog
你好
我有两个自定义应用程序(即Custo雷竞技安卓下载m1和Custom2)。在Custom1中,我正在使用SPI从闪存中获取特定于应用程序的数据。在Custom2中,我根本没有使用SPI。对于Custom1和Custom2应用程序,我面临相同的问雷竞技安卓下载题(即在RAM(开发模式)工作而不在Flash(即运行模式)中工作)。请提供信息,我需要做的配置是什么,以运行模式运行应用程序图像(即从闪存引导)。
你好Mahesh.,
There is no specific configuration to run a custom application from the SPI, all you need to do is to just burn the application, using smart snippets and tag the image as bootable when the SM ask you to. Since you are able to run other applications (reference designs, etc) through the SPI but not your custom application i suspect that the problem lies in your custom application code (when you say custom 1 and custom 2 i suppose that you mean the application profiles that are included in your custom code). Since you are interfacing with the SPI memory and it works over SRAM but not when booted via SPI i would suspect that something is wrong with the SPI access that your code does, you can try to remove the SPI access from your custom application and try to boot from SPI. Perhaps there is somekind of conflict with the application specific data that you mention, how those data are loaded to the SPI, via Smart Snippets and the propriety header programmer ? check the offset where those data are stored.
Thanks MT_dialog
你好,
我am using Smart Snippet tool to write the application specific data in the Flash. I am writing Application specific data from 0x16000 location onwards.
你好,
Whether I can keep the Application image and Application specific data in any of the memory regions apart from the internal Flash of the DA14583.
每次我都读取了来自闪存的1024个字节的应用程序特定数据。是数据大小的任何限制,可以一次从闪存中读取。
我nitial 5 to 6 cycles of reading (i.e. 1024 bytes reading from Flash), it is finishing quickly. But after that for every reading cycle it is taking approximately 10seconds. I am not getting Idea, why it is taking this much time to read 1024 bytes from Flash. This much time is taking only if the application image is programmed in Flash. In development mode , reading cycles are finishing very quickly. I am suspecting Boot loader code interference occurring in between. Please give idea to resolve this delay in reading cycle.
你好,
We still need to narrow down the problem you met first.
我s value read from those long-time reads still correct as expected?
您的项目中的睡眠设置是什么?Arch_sleep_off,Arch_ext_sleep_on或Arch_deep_sleep_on?请使用Arch_sleep_off(如果没有),只需简化问题。
您还能监控SPI CS引脚吗?在长时间读取的情况下,SPI CS引脚应长时间观察到较低。
And could you do successive reads with smaller chunks, say 512/256 bytes or etc., and see what the result is?
SPI读取没有特别限制。
And the bootloader does not exist when the application runs up.
你好,
我t is taking long-time as well as the read values not the expected one.
我们项目中的睡眠设置仅是ARCH_SLEEP_OFF。
如何观察SPI CS状态。我需要连接CRO探头的引脚。
我试着在每个迭代中读取256字节,但年代till I am getting all zeros.
请帮助我检查SPI CS引脚的状态,同时从内部闪光灯读取数据。
你好Mahesh.,
我t sounds like your SPI is in power down mode, are you re-enabling your SPI before start reading, do you invoke spi_flash_release_from_power_down(); in order to release the SPI from power down ? The secondary bootloader in the 583 OTP will power down the flash after booting. The CS pin is the 2_3 pin on the 583 chip.
Thanks MT_dialog
你好,
This information help me a lot to identify the issue.
我tried "spi_flash_release_from_power_down()" function but not working. Later I tried "spi_flash_enable()" function, with this function I am able to read the application specific data correctly.
Thank you very much for the information.
我need some information regarding the Maximum size of single Application image I can keep in internal flash (which can work). That means I want know the Application size limitation.
你好Mahesh.,
The maximum application that you burn in flash and run from the 580 depends on the 580 and not the flash. The limitation is the 42KB of Sysram available, in that you will have to calculate the exchanged memory the heaps etc, for more info about this please check the UM-B-011 Memory map and scatter file. Also be aware that keil has a 32K limitation with the evaluation licence.
Thanks MT_dialog
你好,
我have taken BLE Peripheral code and edited. As of now I am able to use Write call back and Notify callback in the BLE peripheral. But I am not able to use read callback with the BLE peripheral code. Please give guidance where I can get the read callbacks. Which file and function, I need to use to access the Readcall back from the BLE client (i.e. Mobile device) to BLE Server (i.e. Dialog Semiconductors) development board.
你好Mahesh.,
读回调?您的意思是标准回调,指示客户端已从对等体读取数据,这种处理程序不存在,指示客户端从对等体读取的指示没有达到应用程序级别。
Thanks MT_dialog
你好,
我am interfacing DA14583 with an I2C slave device. Some times I am able to read the data from the I2C slave device. But some times the Processing is getting struck at
"WAIT_UNTIL_NO_MASTER_ACTIVITY()" (i.e. in the I2C drive) for indefinite time. Any specific reason that the processor getting struck at the mentioned instruction.
Please guide me to resolve this issue.
你好Mahesh.,
您能为您遇到此I2C问题创建另一个线程吗?论坛用户更容易搜索类似主题。谢谢你的理解。