Не забывайте, что по адресу 0000000 у арма должны храниться вектора прерываний. А микроконтроллер должен проецировать флеш-память на нулевой адрес. Таким образом адрес 40000000(начало флеш) должен содержать вектора прерываний. если вы грузите программу с адреса 40002000, то может случиться, что вектора оказываются не там где надо.
Если с векторами все в порядке, то я так понимаю что нужно просто правильно настроить линковщик. т.е нужно указать ему, что остальная программа должна находиться по адресу 40002000 (я правда не понимаю зачем так ее грузить). Как это сделать, зависит уже от того каким компилятором и средой вы пользуетесь.
|