This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Change DFU start address and application start address

I changed the dfu start address to 0x00 and application start address to 0x8000. The application use the RTC0 IRQ to count the timer, but the RTC0 IRQ did not work correct(if the start application address is 0x00,the IRQ is work). Are there other config file should be modify for shift the start address?

  • Hi

    I am not exactly sure what you are trying to do but you can change the start address for the bootloader by modifying the BOOTLOADER_REGION_START constant in dfu_types.h file in the bootloader project in the nRF51 SDK. You should also modify the IROM Start and Size addresses accordingly in KEIL ->Options for Target -> Target

  • Hi I had modify the dfu_types.h and keil,it still not correct. I check the RTC0 's register, it has correct interrupt event, but the main loop did not jump to RTC0 IRQ. I also check the map file from keil,the RTC0 IRQ is local in the correct address(after the 0x8000)

    Map file info startup_arm_nrf51.o(RESET) refers to nrf51_it.o(i.RTC0_IRQHandler) for RTC0_IRQHandler

    i.RTC0_IRQHandler 0x00008184 Section 0 nrf51_it.o(i.RTC0_IRQHandler)

    RTC0_IRQHandler 0x00008185 Thumb Code 34 nrf51_it.o(i.RTC0_IRQHandler)

    0x00008184 0x0000002c Code RO 254 i.RTC0_IRQHandler nrf51_it.o

  • I am still quite puzzled about what you are trying to achieve. If you want to make an RTC IRQ work, then there is an example for that in the rtc_example in the nRF51 SDK and e.g. here.

  • I used the nRF51422(not use the RF part) for the small device,the device need to update the application by the customer. So,I try to divide the 51422 for two part: 1.bootlader,address 0x0000,base on DFU; 2.Application,address 0x8000,for normal work,like Led and LCM display; Our other device use the STM32,STM32 is work very good. I try to do the same in the 51422,but it not work good as STM32. I am know well in the IAR,but i switch the project to IAR,the application still not work. The application may has associate with the start address,if I change the application from 0x8000 to 0x0000,the RTC0 IRQ is work. Could you try to modify the RTC_example from 0x8000?

  • The cortex_m0's Interrupt Vector Table is always fix in the 0x0000,cortex_m3 can change the vector table offset. I will try to modify the boot interrupt function to handle the app interrupt function call.

Related