-
- Вот что кажет SRC файло... POV(569 знак., 29.05.2015 12:35)
- Старшие разряды результата (R4, R5) откинуты. Ты ж 16-битному присваиваешь. ULDIV -- беззнаковое деление 32-разрядных чисел. Здесь все ок. - fk0(29.05.2015 12:48)
- Отлично, я всецело за - тогда чего же результат неверный? Он у меня всегда заведомо влазит в 16 бит. - POV(29.05.2015 12:55)
- Потому что ты утаил код. Да, можешь выложить весь проект, но я не уверен, что буду в нём копаться... - SciFi(29.05.2015 13:03)
- Да никто ни в чём копаться не будет. Имеет место или моё недопонимание сишника или же специфика компилятора. Вот к примеру я точнее локализовал проблему... POV(424 знак., 29.05.2015 13:12)
- Часто, при таких чудо глюках, помогает увеличение размера стека :) - Kit(31.05.2015 02:59)
- Не понимаю в чем сырбор. Вопрос не стоит обсуждения. Все решается восьмиклассником на симуляторе или на реале с выводом подозрительного адреса и данных в RS. Не понимаю. - Олдфа(31.05.2015 10:12, )
- Но видимо не так просто ищется косяк, раз я помощи зала попросил. Тем более что в настоящий момент я боюсс перекомпиливать код, т.к. он заработал (найди как гарантировано плавающую проблему). Использую то, что есть для отладки железа. - POV(31.05.2015 10:24)
- Ну в чем проблема? Создать фальшивый проект в 20 строчек, в котором точно так же вычисляется адрес. Те же установки, оптимизация, типы давнных и те же операции / %. Пройтись симулятором, с подозрительным значением. Сказать людям что компилятор не Олдфаг(32 знак., 31.05.2015 10:34, )
- Уже. - POV(31.05.2015 10:34, ссылка)
- Не вижу анализа. Перестаньте оперировать понятиями работает не работает. Пройдите злополучное место симулятором и посмотрите где затык. Здесь не нужно железо даже.... - Олдфаг(31.05.2015 10:42, )
- Спасибо КО - POV(31.05.2015 11:24, ссылка)
- А отключить нельзя? Резать все что мешает Симулятору. Уже даже сомневаюсь, что Вы знаете разницу между симулятором и эмулятором. Убратьнах ожидание флагов, вызовы асм и прочую нечисть. Чиста голый сишный проэкт. Симулятор, или, как его называли в Олдфаг(128 знак., 31.05.2015 11:56, )
- Если убрать - то это будет не тот проект что нужен. И отсутствие косяков в нем мне ничего не даст. Писал же выше, что "чистое" тестирование косяков не выявило. Проблема именно с данным проектом. - POV(31.05.2015 12:18)
- Есть более простой путь Восьмиклассника. Перед записью кривой страницы, когда адреса и данные готовы к выплевыванию в датафлешь, сделать if(адрес_подозрительной_страницы){ DI; printf(подготовленный_адрес); printf(подготовленное данное);}. Тогда на Олдфаг(66 знак., 31.05.2015 12:02, )
- А отключить нельзя? Резать все что мешает Симулятору. Уже даже сомневаюсь, что Вы знаете разницу между симулятором и эмулятором. Убратьнах ожидание флагов, вызовы асм и прочую нечисть. Чиста голый сишный проэкт. Симулятор, или, как его называли в Олдфаг(128 знак., 31.05.2015 11:56, )
- Спасибо КО - POV(31.05.2015 11:24, ссылка)
- Не вижу анализа. Перестаньте оперировать понятиями работает не работает. Пройдите злополучное место симулятором и посмотрите где затык. Здесь не нужно железо даже.... - Олдфаг(31.05.2015 10:42, )
- Уже. - POV(31.05.2015 10:34, ссылка)
- Ну в чем проблема? Создать фальшивый проект в 20 строчек, в котором точно так же вычисляется адрес. Те же установки, оптимизация, типы давнных и те же операции / %. Пройтись симулятором, с подозрительным значением. Сказать людям что компилятор не Олдфаг(32 знак., 31.05.2015 10:34, )
- Но видимо не так просто ищется косяк, раз я помощи зала попросил. Тем более что в настоящий момент я боюсс перекомпиливать код, т.к. он заработал (найди как гарантировано плавающую проблему). Использую то, что есть для отладки железа. - POV(31.05.2015 10:24)
- Не понимаю в чем сырбор. Вопрос не стоит обсуждения. Все решается восьмиклассником на симуляторе или на реале с выводом подозрительного адреса и данных в RS. Не понимаю. - Олдфа(31.05.2015 10:12, )
- в C8051 полно всяких банков и с ними нужно обходиться аккуратненько - Vit(29.05.2015 13:14)
- Я ручками никаких банков не назначал. - POV(29.05.2015 13:25)
- Расположение переменных? У тебя в памяти имеет место засирание, а ты нас типами данных паришь. - SciFi(29.05.2015 13:15)
- Вынужден согласиться что типы не причём, хотя суть косяка пока не раскопал... POV(809 знак., 30.05.2015 11:25)
- Просто покажи код. - fk0(30.05.2015 11:32)
- Да ты скажи чего показать. Весь проект выложить или что-то конкретное нужно?... POV(21 знак., 30.05.2015 11:36 - 11:44)
- Облом лезть в стандарт, но порядок действий при | вроде как не гарантирован. Vit(235 знак., 30.05.2015 13:28)
- Накаркал.. теперь когда заработало чтение флехи, начала именно эта операция по работе с ОЗУ косячить. Сделал приведение типа к 16 битам - работает. Это наверное пасмурная погода так действует ) POV(68 знак., 01.06.2015 10:42)
- Именно тут нет косяков. Проблемы по работе с dataflash (модуль AT49DBxxD.c) - POV(31.05.2015 00:20)
- Проблема, очевидно, в чём-то другом. Я в коде ничего опасного не усмотрел. Почему вообще ты уверен, что flash работает неправильно? Может ты получаешь об этом не верные данные. Насколько я понимаю, у тебя код переносит данные из dataflash в fk0(196 знак., 31.05.2015 12:00)
- Я файло 512 кбайт с компа заливаю во флешь, затем считываю и смотрю несовпадения. При адресах за 64к начинается путаница - читается (предположительно) не с тех адресов (т.е. данные там осмысленные, куски заливаемого текста) но не с того места POV(252 знак., 31.05.2015 12:15 - 12:19)
- С компа и обратно - не через USB-ли? Попробуйте прогнать эти 512к не через флэшь, а просто через МК и сравнить. У меня были сбои на FT232+Linux на 500кБод, пролечил тупым сниженим количества байт в пакете от МК. - Точка опоры(31.05.2015 12:22)
- Вопросы: 1) как изначально данные попадают во flash? Через что? 2) как вычитываются из внешней памяти обратно в комп? Я этого в коде не усмотрел. 3) Работа компорта в программе в процессе теста нужна или нет? Можно ли отключить этот модуль на fk0(152 знак., 31.05.2015 12:24)
- Гоняются данные через УАРТ. Идентичные (почти) команды в файлике commands.h... С ОЗОй проблем нет... POV(128 знак., 31.05.2015 12:34 - 12:36)
- Я файло 512 кбайт с компа заливаю во флешь, затем считываю и смотрю несовпадения. При адресах за 64к начинается путаница - читается (предположительно) не с тех адресов (т.е. данные там осмысленные, куски заливаемого текста) но не с того места POV(252 знак., 31.05.2015 12:15 - 12:19)
- Проблема, очевидно, в чём-то другом. Я в коде ничего опасного не усмотрел. Почему вообще ты уверен, что flash работает неправильно? Может ты получаешь об этом не верные данные. Насколько я понимаю, у тебя код переносит данные из dataflash в fk0(196 знак., 31.05.2015 12:00)
- Да на + заменить его и все - Олдфаг(30.05.2015 22:32, )
- А я бы сделал так: FDA(155 знак., 30.05.2015 22:18)
- Облом лезть в стандарт, но порядок действий при | вроде как не гарантирован. Vit(235 знак., 30.05.2015 13:28)
- Да ты скажи чего показать. Весь проект выложить или что-то конкретное нужно?... POV(21 знак., 30.05.2015 11:36 - 11:44)
- Просто покажи код. - fk0(30.05.2015 11:32)
- Поэтому и нужно приводить код полностью, что сам засора не видишь, а он в глаза бросается. - fk0(29.05.2015 13:19)
- Вынужден согласиться что типы не причём, хотя суть косяка пока не раскопал... POV(809 знак., 30.05.2015 11:25)
- Часто, при таких чудо глюках, помогает увеличение размера стека :) - Kit(31.05.2015 02:59)
- +1. Ибо очевидно уже, что проблема в другом месте. - fk0(29.05.2015 13:05)
- Да никто ни в чём копаться не будет. Имеет место или моё недопонимание сишника или же специфика компилятора. Вот к примеру я точнее локализовал проблему... POV(424 знак., 29.05.2015 13:12)
- Потому что ты утаил код. Да, можешь выложить весь проект, но я не уверен, что буду в нём копаться... - SciFi(29.05.2015 13:03)
- Отлично, я всецело за - тогда чего же результат неверный? Он у меня всегда заведомо влазит в 16 бит. - POV(29.05.2015 12:55)
- Судя по этому тексту действует кейл правильно. Ошибка в ?C?ULDIV крайне маловероятна. Вероятно надо искать проблему где-то в другом месте. - AlexBi(29.05.2015 12:46)
- Старшие разряды результата (R4, R5) откинуты. Ты ж 16-битному присваиваешь. ULDIV -- беззнаковое деление 32-разрядных чисел. Здесь все ок. - fk0(29.05.2015 12:48)
- Вот что кажет SRC файло... POV(569 знак., 29.05.2015 12:35)