We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
why this is not working?
#include <stdio.h> // Standard I/O .h-file #include <LPC23xx.H> // LPC2388 Header File
#define M32 (*(( volatile unsigned long *) (0x00070000)))
int fun(void); int main(void) { int x;
PINSEL10 = 0; PINSEL4 = 0;
FIO2DIR = 0x0000000F; // P2.0..7 defined as Outputs
x = fun(); // Function call write and read
if(x == 0) { FIO2SET = 0x0000000F; }
FIO2SET = 0x00000000;
return 0; }
int fun(void) { volatile unsigned long valu; unsigned int i;
unsigned long *ptr;
unsigned long flashaddress;
flashaddress = 0x00070000;
MAMCR = 0x00; MAMTIM = 0x03; MAMCR = 0x10;
M32 = 0x189; // data write ptr = (unsigned long *)flashaddress;
valu = *ptr;
if(valu == 0x189) return 0; // return 0 if data matches else return 1; }
1) "No subject"
2) No description about what do happen, or what do not happen, or what YOU expected to happen.
3) Incorrectly posted source code.
4) Source code with a function given the descriptive name "fun". Short for function, or a funny function or what?
5) Your funny function "fun" can return without returning a value, despite being declared to return int. Or is this a result of you failing to post the code as code?
6) A variable with the descriptive name "valu" declared as volatile - where is the asynchronous updates of the variable?
7) A main() that returns - but returns where? Do you think there is an OS that will give you a command line prompt after the program ends?
8) You specify a pointer into flash memory - have you seen any documentation somewhere that M32 = 0x189 should result in a correct write into flash, and that such value should be immediately available for reading back? Have you looked at the documentation for how to update flash pages?