Jump to content

    

sse

Участник
  • Content Count

    20
  • Joined

  • Last visited

Community Reputation

0 Обычный

About sse

  • Rank
    Участник
  • Birthday 11/27/1977

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array
  1. stm32 биты защиты

    а с JTAG как? POR наверное тоже не гарантирует, что SRAM будет содержать случайные данные. Если питание не опускать до 0, а только чуть ниже 2v ?
  2. stm32 биты защиты

    А что там? Есть вероятность остатков данных защищенной программы которая из flash выполнялась? Подскажите пож. Я только начинаю с ARM и инструментом ещё не так легко владею
  3. stm32 биты защиты

    я немного не про то. Что flash прочитать не получится это понятно. Вопрос про SRAM например запустили защищенный контроллер нормально из flash. Он запустился и работает. Возможность запуска сторонней программы из SRAM остается? Подключаем отладчик и запускаем оттуда другую программу, которая считывает остальную SRAM которую не заняла собой. Так можно или нет? Ведь данные SRAM от работы основной прошивки (из flash) не должны потеряться если питание не отключать.
  4. stm32 биты защиты

    доброго дня подскажите пож про защиту stm32f10x. Некоторые моменты никак не догоню есть 2 вида защиты: только на запись в отдельные страницы flash и чтения flash? при выставленой защите от чтения flash: 1. запрещается ли запись во ВСЕ страницы flash или все равно нужно запрещать на запись? 2. Есть ли возможность снятия частичного дампа ОЗУ? Ведь вроде остаеться возможность после старта из flash подключить отладчик, залить НАШУ программу в ОЗУ и как то запустить её ( напр изменить ножки boot и сделать reset. sram должна сохраниться)
  5. NIOS + uc/OS-II + vic

    версия 10.1 только SOPC билдер. попробовал даж использовать эклипс_11, но все так же
  6. NIOS + uc/OS-II + vic

    не происходит прерывания запущенной нитки когда подключен VIC :( более детальное описание: есть 2 прерывания (по нажатию 2 кнопок) key0_irq() и key1_irq(). Каждое из прерываний внутри мигает лампочкой и key0_irq() ещё выставляет флаг ф-й OSFlagPost(), который ждет ф-й OSFlagPend() нитка led_task() и долго внутри крутится в цикле со счетчиком. Когда подтыкаю внешний контроллер прерываний, и запускается нитка led_task(), прерывания блокируются до окончания её работы, т.е. пока снова не наткнется на Pend. Если используется Внутренний Контроллер, то ВСЕ НОРМАЛЬНО. Подскажите пож, что я забыл static OS_FLAG_GRP *toLed_flGr; //#define OSIntEnter_en //=================================================================== //=================================================================== #ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT void key0_irq(void* context) #else void key0_irq(void* context, alt_u32 id) #endif { for(alt_u32 te_co =0xff; te_co; te_co--) IOWR_ALTERA_AVALON_PIO_SET_BITS(LED_BASE, 0x10); //led irq0 on IOWR_ALTERA_AVALON_PIO_EDGE_CAP(KEY0_BASE, 1); //irq flag clear #ifdef OSIntEnter_en OSIntEnter(); #endif alt_u8 err; OSFlagPost( toLed_flGr, 1, OS_FLAG_SET, &err ); IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(LED_BASE, 0x10); //led irq0 off #ifdef OSIntEnter_en OSIntExit(); #endif } //=================================================================== //=================================================================== #ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT void key1_irq(void* context) #else void key1_irq(void* context, alt_u32 id) #endif { #ifdef OSIntEnter_en OSIntEnter(); #endif for(alt_u32 te_co =0xff; te_co; te_co--) IOWR_ALTERA_AVALON_PIO_SET_BITS(LED_BASE, 0x20); IOWR_ALTERA_AVALON_PIO_EDGE_CAP(KEY1_BASE, 1); IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(LED_BASE, 0x20); #ifdef OSIntEnter_en OSIntExit(); #endif } //=================================================================== //=================================================================== #define ledTaskStk_le 1024 OS_STK ledTaskStk[ledTaskStk_le]; void led_task(void *arg) //просто мигание первым светодиодом. Самая низкоприоритетная нитка. { while(1) { alt_u8 OSFlagPend_err; alt_u8 flagActive; flagActive = OSFlagPend( toLed_flGr, 1, OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, 0, //тиков до сработки (потом тут можно выставить ожидание для перехода на др канал) &OSFlagPend_err ); IOWR_ALTERA_AVALON_PIO_SET_BITS(LED_BASE, 0x1); for(alt_u32 te_co =0x9fffff; te_co; te_co--) IOWR_ALTERA_AVALON_PIO_SET_BITS(LED_BASE, 0x1); IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(LED_BASE, 0x1); }//while(1) } //=================================================================== //=================================================================== int main() { alt_u8 OSFlagCreate_err; toLed_flGr = OSFlagCreate(0, &OSFlagCreate_err); OSTaskCreate(led_task, NULL, &(ledTaskStk[ledTaskStk_le -1]), 5); alt_u32 te1; #ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT alt_ic_isr_register( KEY0_IRQ_INTERRUPT_CONTROLLER_ID, KEY0_IRQ, key0_irq, &te1, 0 ); alt_ic_irq_enable( KEY0_IRQ_INTERRUPT_CONTROLLER_ID, KEY0_IRQ ); #else alt_irq_register( KEY0_IRQ, &te1, key0_irq ); alt_irq_enable( KEY0_IRQ ); #endif //разрешить в pio регистрах прерывания IOWR_ALTERA_AVALON_PIO_IRQ_MASK(KEY0_BASE, 1); #ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT alt_ic_isr_register( KEY1_IRQ_INTERRUPT_CONTROLLER_ID, KEY1_IRQ, key1_irq, &te1, 0 ); alt_ic_irq_enable( KEY1_IRQ_INTERRUPT_CONTROLLER_ID, KEY1_IRQ ); #else alt_irq_register( KEY1_IRQ, &te1, key1_irq ); alt_irq_enable( KEY1_IRQ ); #endif //разрешить в pio регистрах прерывания IOWR_ALTERA_AVALON_PIO_IRQ_MASK(KEY1_BASE, 1); OSStart(); return 0; }
  7. Железо: BF537 EZ-KIT LITE проект в visualDSP++ 5 открыл два (передача и прием) RAW ICMP сокета заполнил 2 sockaddr_in создал ICMP ping пакет, посчитал CS и по кнопке отсылаю на комп по sendto(). Комп шлет ответ. В while() до нажатия кнопки крутится recvfrom(), но на ответ на свой ping и на ping с компа возвращ 0. В чем проблема может быть? вот краткий исходник: int socket_fd, socket_fd_tx; struct sockaddr_in sa,ra; #define SENDER_PORT_NUM 0 #define SENDER_IP_ADDR "192.168.10.70" #define RECEIVER_PORT_NUM 0 #define RECEIVER_IP_ADDR "192.168.10.32" memset(&sa, 0, sizeof(struct sockaddr_in)); sa.sin_family = AF_INET; sa.sin_addr.s_addr = inet_addr(SENDER_IP_ADDR); sa.sin_port = htons(SENDER_PORT_NUM); memset(&ra, 0, sizeof(struct sockaddr_in)); ra.sin_family = AF_INET; ra.sin_addr.s_addr = inet_addr(RECEIVER_IP_ADDR); ra.sin_port = htons(RECEIVER_PORT_NUM); socket_fd = socket(AF_INET, SOCK_RAW, 1); socket_fd_tx = socket(AF_INET, SOCK_RAW, 1); while(1) { while( ) //ждем кнопку rec_data = recvfrom(socket_fd,(void*)&data_rec_buffer,100,0,(struct sockaddr*)&sa, &len); send_data = sendto(socket_fd_tx, data_buffer,sizeof(icmp_pack),0,(struct sockaddr*)&ra,sizeof(ra)); }
  8. Может кто, имеющий ADSP-BF537 EZ-KIT Lite, проверит мою прогу на плате? Нужно всего *.ldr загрузить по com порту и посмотреть что в терминалке покажет.
  9. Эффекта не обнаружилось. Я говорю, там StartUP даже не стартует. Я там в первой строке вставил дерганье ногой. Выполняется только INI_CODE (который отдельным DXE подсоединяется к проекту)
  10. Думается проблема в другом совсем. В первой строчке statUP вставил дергать ногой. Не исполняется startUP!!! когда убрал выделение памяти - все нормально. Шаманил с ревизией камня и размером выделяемого блока - в 2 совпадениях заработало. То ли линковщик чего то не туда рассовывает, то ли одно из двух. (в самой проге, когда нормально запускается, последовательный тест SDRAM по адресам 0x4 - 64MB без ошибок) куда копать
  11. . -В ExpertLinker я указал куда положить этот массив, он в нужном банке. -Т.е. мне в загрузчике нужно написать заполнение нулями? У меня этого нет(там только настраиваются регистры для работы SDRAM). Или имеете ввиду в Startup ?
  12. hi есть кит ADSP-BF537 STAMP Board, VisualDSP_4.5 Update June 2007, гружусь по COM-portу . В загрузчике: -инициализ-ся SDRAM -по адресу в 3 банке SDRAM пишется число(чтоб в основной проверить что нормально всё) -одну ножку в output перевожу(чтоб видно было что загрузчик выполнился) . В main -Проверяю что загрузчик записал в 3 банк SDRAM (правильно) -Пишу во всю SDRAM и потом проверяю, непосредстенно по адресам с 0x4 - fffffe u32 слов(правильно) -вся статистика по COM-порту в комп шлется (пишу прямо в регистры) . Это все работает. Но когда в глобальных пишу: section ("sdram0_bank1") u8 my_table[0xfffff]; main не выполняется , загрузчик нормально выполняется . В чем проблема может быть?
  13. Без драйвера сразу всё завелось (там регистров чуть), но так не интересно :(
  14. Кто нибудь видел это чудо? На сайте аналога ничего нет - ни фотки, ни схемы.
  15. Драйвера ещё не писал. Разбираться нужно. Потом конечно понабится и уже знаю где. Но сейчас нужно быстрее сделать прототип на готовом...