I am trying code a custom board with TZ1001 toshiba microcontroller in it. I have to store the sensor values connected to TZ1001 in internal NOR flash with time a stamp. I am able to write the vaalues to flash properly, but when i try to read the values from flash then it is giving some random constant value. I am attaching the code, where it starts writing to flash when typed 'a' and reads when typed 'b'.
void tmp006demotask(void *pvParameters)
rtn = drv_info->Initialize(0);
rtn = drvinfo->PowerControl(ARMPOWER_FULL);
input = prompt_console("select");
if ((input >= 'A') && (input <= 'Z'))
input = input + ('a' - 'A');
if (input == 'a')
sramarea[i] = (int)temperature;
rtn = drv_info->WriteData(WRITE_ADDRESS, sram_area, sizeof(sram_area));
print_sp(PREF "DATA WRITE rtn=%d data=0x%02x \r\n", rtn, *sram_area);
print_sp(PREF "MEM VALUE 0x%08x\r\n", (ptr+=2));
if (input == 'b')
rtn = drv_info->ReadData(WRITE_ADDRESS, hts_measurement1 , 1);
print_sp(PREF "DATA READ rtn=%d %d \r\n",rtn, hts_measurement1);
sramarea and htsmeasurement are two array variables of integer data types declared globally.
I request someone to help me on this, as i am stuck in this from many days.
Is this a FreeRTOS related question?
Yes I am coding it in free rtos platform!
Please elaborate on the FreeRTOS part of your question so we can assist with that. The NOR flash driver is not part of FreeRTOS.
Although it seems that your question is not related to using FreeRTOS, I had a quick look at your code and found that a variable
i is being used without initialising it:
sram_area[i] = (int)temperature;
You will write the contents of
sram_area to flash, which is probably also uninitialised.
sram_area is a variable that is declared globally as an integer array.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.