Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Пт фев 08, 2019 16:17:11
А запустить отладку без перепрошивки никак ?
uldemir писал(а):Или хотя бы, чтобы при прошивке там записывались бы какие-то начальные установки.
Это нужно доку на компилятор курить. Смотреть как размещать данные по конкретному адресу.
Пт фев 08, 2019 16:45:41
Проще, наверное, при прошивке не стирать всю Flash-память, а только те страницы, в которые ложится прошивка
Пт фев 08, 2019 16:54:17
мм. не знаю. среда CodeComposerStudio. Может, вы с ним работали и можете подсказать как?
Проблема не в том, что при отладке флэш сносится. А то что при перепрошивке. Кажется, проще будет задействовать еще один EUSCI и на неё навесить какой SPI EEPROM. Не хочется в этот CCS особо вникать.
Добавлено after 4 minutes 30 seconds:
Shit. как всё просто оказалось. Когда делал 10 лабу (там как раз в верхнюю память надо было писать лог работы), вроде бы там данные не пропадали. А в моём проекте пропадают. Оказывается настройки проекта немного разные. Нашел галочку "Erase and download necessary segments only"
Пт фев 08, 2019 17:38:01
Собственно, о чём и говорилось.
Вс фев 17, 2019 21:29:32
Доброго времени суток. Проект состоит из нескольких файлов. В одной из файлов есть функция:
- Код:
buf_push_array(uint8_t* pointer, uint8_t len, uint8_t* buf)
Ее прототип находиться в хидере, и заинклужен в другом файле.
Функция одним из параметров принимает pointer, на массив uint8_t , берет из него len елементов, и сует в буфер по указателю buf.
Вопрос: как имея указатель на массив uint8_t из другого файла проекта, получить длинну этого массива ВНУТРИ этой функции ?
Если беру sizeof массива, находясь в его файле, получаю конечно его размер, а если беру sizeof аргумента функции, получаю ясен пень размер 1 элемента uint8_t
Вс фев 17, 2019 21:48:01
Никак. Указатель не несёт с собой никаких данных, только адрес.
Вс фев 17, 2019 22:12:12
Никак...
Боль
Вс фев 17, 2019 22:15:02
А что мешает передавать размер массива через len? Он же вроде для того туда и поставлен - сказать, сколько байтов надо копировать.
Кстати, функция эта - почти стандартный memcpy, только аргументы по-другому расположены.
Вс фев 17, 2019 22:40:52
А что мешает передавать размер массива через len? ...
Я хочу, чтобы можно было копировать произвольное количество данных, а не весь массив. А дополнительно, знать размер массива хотел, чтобы сделать контроль (защиту от дурака) того, что пользователь функции не запросил данных больше, чем есть в массиве.
Пн фев 18, 2019 06:35:21
Вопрос: как имея указатель на массив uint8_t из другого файла проекта, получить длинну этого массива ВНУТРИ этой функции ?
Перейти на stl и передать вместо массива ссылку на объект типа vector или array. А от них уже брать размер.
Вт фев 19, 2019 05:55:47
Есть проект из 2 исходных файлов + 1 свой хидер. В обоих исходных файлах необходимо включение своего хидера. В одном из исходных файлов необходимо включение stdio.h + stdint.h, а в другом только stdio.h. Как сделать правильно: включить stdio.h + stdint.h в свой хидер, и подключить к обоим исходным файлам, или не включать их в свой хидер, и подключить в каждом исходнике только необходимые ему хидеры ?
Вт фев 19, 2019 06:29:07
формально правила хорошего тона требуют включать в исходник модуля только те хидеры, что необходимы для компиляции этого модуля.
а не формально - без разницы
Вт фев 19, 2019 07:12:13
формально ... не формально ...
А как поступаете в таких случаях Вы
?
Вт фев 19, 2019 07:52:39
А как поступаете в таких случаях Вы
?
Код должен быть написан так, чтобы включение "лишнего" заголовочного файла ни на что не влияло.
Вт фев 19, 2019 09:23:34
Пока_без_кота писал(а):А как поступаете в таких случаях Вы
начинаю я всегда именно так, как вам и посоветовал, т.е. "правильно". но по мере роста количества модулей растет и колчество связей между ними, и часто в конечном итоге получается "как всегда": в исходнике список на полторы страницы из подключаемых заголовков...
периодически делаю "рефакторинг"...
VladislavS писал(а):Код должен быть написан так, чтобы включение "лишнего" заголовочного файла ни на что не влияло
это правильно сказано. если заключать тело любого заголовочника в "дефайны безопасности", как рекомендуется, то хоть в 250 местах приинклюживай - ничего страшного не произойдет. но в конечном итоге это способствует именно тому бардаку, к которому я и прихожу в своей деятельности
Вт фев 19, 2019 20:34:58
VladislavS, ARV - благодарю.
Вт фев 19, 2019 20:45:37
по мере роста количества модулей растет и колчество связей между ними, и часто в конечном итоге получается "как всегда": в исходнике список на полторы страницы из подключаемых заголовков
по-хорошему надо при таком положении дел сооружать эдакие "макромодули", хоть как-то группирующие мелкие и светящие наружу своими интерфейсами. Но всегда лень, да
Вт фев 19, 2019 20:55:26
Только не хидеры, а хедеры. А то как то уж совсем неприлично.)
Ср фев 20, 2019 15:20:32
Скажите пожалуйста, правильно ли я понимаю массивы в Си
Есть у меня потребность в создании двумерного массива, пусть
unsigned long int button [4][4];
Здесь более или менее понятно, что создается массив в памяти, который для простоты понимания является двумерным, у которого 4 строки и 4 столбца. Т.е. 16 ячеек, которые по 32 бита, или 16 слов, 16 элементов.
Теперь мне надо обратиться к первому элементу массива, я должен написать
button [0][0] = 132;
Т.е. Первый элемент считается от нуля, а строки при объявлении массива считаются от 1? И тогда последний элемент массива будет у меня
button [3][3] ???
Ср фев 20, 2019 16:14:34
да, как всегда, при объявлении - количество элементов, а индексы от нуля.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.