14 что такое программный код. Что такое программный код, применение, ошибки

  • 14.06.2019

Инструкция

Просмотрите исходный код при помощи ее исходника. Исходный файл содержит в себе код, написанный программистом при создании программного обеспечения, после этого он компилируется при помощи специальных иснструментов и превращается в файл установки.

Если вами был утерян файл исходного кода , или он недоступен вам по другим причинам, воспользуйтесь специальными программами-декомпиляторами. Также имеются программы-дизассемблеры. Обратите внимание, что просмотр исходного кода зачастую может стать невозможным в случаях, когда вам не известно, какой язык программирования использовался при его разработке.

Если вы хотите найти код свободной программы, выполните поиск в интернете с соответствующим запросом. Также попробуйте скачать данную программу и в ее меню найти пункт «Просмотр исходного кода ». Обычно это доступно для распространяемых программ.

Будьте осторожны при их использовании, в частности это относится к программам, скачанных не с сайта разработчика, поскольку в исходник может быть заложен вредоносный код, который при установке на ваш компьютер также инсталлирует трояны, клавиатурные шпионы и так далее.

Будьте внимательны при использовании программ-декомпиляторов, поскольку многие разработчики программного обеспечения пользуются специальными программами, которые затрудняют процесс воссоздания исходного кода . Если программа была написана на ассемблере, также принимаются специальные программы.

Средств обратной программной разработки достаточно немало, не используйте их в мошеннических целях или для внесения изменений в программы с закрытым кодом, поскольку зачастую за данные действия предусмотрена определенная ответственность в соответствии с законодательством.

Полезный совет

Не просматривайте код закрытых программ и тем более не вносите в него изменения.

Код программы может быть разным в плане приватности – многие разработчики не выкладывают в его в открытый доступ и условиями лицензионного соглашения накладывают на пользователей ограничения, связанные с его использованием и просмотром. Также имеются программы с открытым кодом, который можно просматривать, редактировать и так далее.

Вам понадобится

  • - программа для открытия исходного кода.

Инструкция

Убедитесь в том, что исходный код программного обеспечения, который вы хотите просмотреть, предназначен для открытого доступа. Для этого зайдите на официальный сайт разработчика программного обеспечения и просмотрите тип лицензии. В случае если исходный код программы закрытый, вы не можете просмотреть его. Это неудобно, однако при такой системе достаточно редко встречаются копии программы с содержанием троянских и других вредоносных программ. В этом и заключается основной минус свободного программного обеспечения.

В случае если у вас свободное программное обеспечение, найдите в меню программы «Исходный код», если такой пункт предусмотрен разработчиком, что бывает крайне редко. Для его просмотра в остальных случаях воспользуйтесь ассемблером или другим сторонним программным обеспечением.

Зачастую для открытия исходника необходимо знать, каким языком программирования пользовались создатели программы при разработке, что определить зачастую очень трудно. Здесь вы можете установить на свой компьютер набор различных программ для открытия исходников, написанных на разных языках.

При использовании свободного программного обеспечения, если у вас имеется такая возможность, просматривайте исходный код перед процессом инсталляции, в особенности, если программа загружалась из неофициального источника. Это поможет защитить ваш компьютер от вредоносных программ, которые устанавливаются вместе с основной.

Также не прибегайте к различным методам внесения изменений в закрытый исходный код программы, зачастую в таких случаях предусмотрена определенная ответственность за нарушение правил лицензионного соглашение между пользователем и разработчиком. Тем более не выкладывайте отредактированные подобные программы в интернет.

Видео по теме

Полезный совет

Проверяйте исходники свободного ПО.

Возможность просмотра исходного кода различных сайтов бывает очень полезна при самостоятельном создании сайта . Вы можете увидеть HTML-код, используя специальные настройки и дополнительные расширения браузера, а также программы для просмотра текстовых файлов.

Вам понадобится

  • - программа браузер;
  • - программа-блокнот.

Инструкция

Найдите в браузере пункт меню "Исходный код сайта". К примеру, в программе Mozilla Firefox его можно найти в разделе «Веб-разработка», который находится в пункте «Инструменты» главного меню, а в браузере Internet Explorer вызов просмотра html-кода осуществляется из пункта «Вид» главного меню. Зайдите на сайт, код которого вы хотели бы изучить. После загрузки страницы выберите инструмент «Исходный код сайта». Программа выдаст специальное окно, в котором вы увидите код. Если содержание страницы отображается некорректно, попробуйте сменить кодировку.

Стандартные функции браузера можно расширить с помощью плагина. Нередко на сайте разработчика программы можно найти расширение, позволяющее просматривать код сайта. К примеру, плагин для Mozilla Firefox называется Firebug, для браузера Opera – DragonFly. Скачайте и установите плагин. Вполне возможно, потребуется перезагрузка браузера. Далее зайдите на нужный сайт. Нажмите на кнопку вызова консоли плагина - она может располагаться на одной из рабочих панелей программы, - после чего появится дополнительное окно, в котором будет отображен исходный код открытой страницы.

Сохраните необходимые страницы сайта с помощью соответствующей функции браузера. Для этого нажмите на пункт главного меню «Файл» и выберите надпись «Сохранить как». Выберите место на компьютере, в котором вы сохраните копию страницы. Затем в выпадающем меню с названием «Тип файла» выберите вариант «Веб-страница, полностью» или «Веб-страница, только HTML». Нажмите на «Сохранить». Повторите процедуру со всеми необходимыми страницами интернет-ресурса. Откройте папку, в которой были сохранены файлы. Выберите одну из страниц и запустите ее с помощью программы блокнота. Вы можете использовать установленную в операционной системе Windows утилиту «Блокнот», но лучше скачайте более удобную программу Notepad++. В ней имеется функция разделения разных типов html-тегов по цветам.

IMEI – это идентификационный код мобильного телефона . В случае кражи или потери мобильника вы сможете попытаться его найти по этому код у, если обратитесь за помощью к сотрудникам органов внутренних дел.

Инструкция

Узнайте IMEI вашего телефона , набрав комбинацию *#06#. Через мгновение на экране вашего мобильника будет отображен этот код . Таким образом можно узнать IMEI абсолютно любой модели сотового телефона .

Возьмите коробку от вашего телефона и осмотрите ее со всех сторон. IMEI мобильника обычно указан недалеко от штрих-код а и имеет вид ряда цифр или тоже штрих-код а. Если есть вероятность того, что эта коробочка может попасть в руки непорядочных людей, спрячьте ее подальше, чтобы они не смогли воспользоваться вашей беспечностью.

Ознакомьтесь с документами на мобильное устройство. В них также обычно указан IMEI. Просмотрите договор, который вы оформляли в салоне связи при покупке телефона . IMEI указан в той же строке, что и «Наименование модели».

Отключите телефон, откройте его заднюю крышку и осторожно выньте аккумулятор. Внутри корпуса вы увидите наклейку с информацией о производителе телефона , модели, а также идентификационный код . Однако на некоторых моделях телефонов IMEI может быть указан не в виде длинного ряда цифр, а только в виде штрих-код а.

Если вы решили купить телефон с рук, попросите продавца предоставить вам все документы на мобильное устройство и сверьте IMEI, набрав*#06# или открыв телефон.

Если у вас похитили телефон или вы его потеряли, позвоните сначала своему оператору связи и заблокируйте номер. После этого обратитесь в полицию и предоставьте сотрудникам внутренних дел всю имеющуюся у вас информацию о времени и месте похищения или пропажи. Но самое главное, что вы должны им сообщить – это идентификационный код вашего мобильного устройства.

Если вы по каким-то причинам так и не смогли узнать IMEI телефона , не обращайтесь на интернет-сайты, предлагающие разнообразные программы и сервисы, которые якобы могут помочь вам не только узнать код мобильника, но и разблокировать старую сим-карту без PIN и PUK. Без доступа к базам данных операторов связи это сделать невозможно. А операторы связи заботятся о безопасности по высшему уровню.

Ключ, которым вы активировали ваше программное обеспечение, вы не можете просмотреть обычным способом, как, например, лицензионный код программы, что хранится в реестре и может быть доступен при его запуске либо с использованием других программ. На основании лицензионного кода вы можете просмотреть код активации на официальном сайте разработчика программы.

Вам понадобится

  • - программа для просмотра лицензионного кода.

Инструкция

Скачайте программу Everest 2006 на ваш компьютер. Установите ее и запустите. В главном окне выберите интересующее вас программное обеспечение, лицензионный код которого вы хотите узнать. В правой части окна при этом должна появиться нужная вам информация. Вы также можете сохранить ее в файл или распечатать. В любом случае, подобную информации лучше всего хранить не в электронном виде либо на съемном носителе, который не собираетесь форматировать.

Просмотрите лицензионный код программы на диске, если вы покупали ее отдельным от компьютера товаром, на коробке от него и так далее. Также информация о коде программного продукта содержится в реестре операционной системы. Для его запуска откройте «Выполнить» в меню «Пуск» и введите regedit в поле появившегося окна.

Найдите в директориях слева пункт, отвечающий за программное обеспечение. Выберите нужную вам программу, просмотрите папки на наличие информации о лицензии. Скопируйте его.

Перепишите лицензионный код, полученный одним из вышеуказанных способов. Зайдите на сайт разработчика программного обеспечения, активационной код которой вас интересует. Найдите пункт активации и регистрации программ, если таковой имеется на сайте. Введите лицензионный код вашего программного продукта и посмотрите доступный для него код активации. Этот способ удобен зачастую в тех случаях, когда активация программного продукта доступна на сайте.

Если для вашей программы недоступен такой способ активации, узнайте код при переустановке. Удалите ее полностью через пункт меню панели управления «Установка и удаление программ» и удалите запись об активации, предварительно убедившись в наличии у вас лицензионного а. После установки выполните активацию, просмотрев ключ, подходящий для вашего лицензионного кода. Перепишите его.

Полезный совет

Всегда сохраняйте информацию, необходимую для активации программы в дальнейшем, чтобы не проходить процедуру получения ключа заново.

Рассмотрим, как определить исходный код страницы , ведь этот параметр очень важен при работе в интернете. Если вам нужна какая-либо новость, теги или картинка, но как ее прописать вы не знаете, всегда можно скопировать информацию с другого сайта, узнав исходный код страницы , если он не закод ирован разработчиками сайта. Важен исходный код в постраничных файлах, которые не являются программами, с помощью исходного код а можно работать со страницами и редактировать их.

Вам понадобится

  • Инструкция по просмотру исходного кода страницы.

Инструкция

Чтобы была видима, она прописывается с исходным код ом. Залить ее с код ом можно, если вы владелец ресурса, либо изменить с помощью блокнота, редактора, используя для этого специальные расширения. Пользователь так же может изменить страницу, отредактировав файл и внося в страницу свои . В - браузерах просмотр исходного код а осуществляется с помощью различных команд, рассмотрим их подробнее.

Для Internet Explorer выбирайте вкладку «вид», затем «исходный код страницы » либо пункт можно выбрать, нажав на правую кнопку мыши. Чтобы зашифрованный разработчиками код в этом заходим в меню «сервис», потом «средства разработчика», нажимаем стрелочку, выделяем нужный элемент на и код становиться . Далее жмем на значок и код в текстовом формате и копируем из его составляющих в html.

Браузер Mozilla Firefox предоставляет возможность просмотра с помощью простой команды «Ctrl+U» или в меню «инструменты» выбрать подстроку «посмотреть исходный код ». Просмотреть зашифрованную информацию в Mozilla Firefox можно установив специальное Web Developer, выбираем в меню «код » строку «сгенерираванный код » и внизу страницы появляется значение исходного код а. Копируем файл в буфер обмена или сохраняем с расширением page.htm.

При использовании Google Chrome в основном меню «инструменты» выбирайте подстроку «посмотреть исходный код », далее с помощью правой кнопки мыши открываете пункт «просмотр код а страницы » либо с помощью клавиш "Ctrl + U".

Для браузера Safari в меню находим «посмотреть html-код », так же нажав правую кнопку мыши, открываем подстроку «посмотреть источник» или воспользуемся сочетанием клавиш "Ctrl + Alt + U".

Обратите внимание

Возможность просмотра зашифрованной информации об исходном коде осуществляется с помощью двух браузеров.

Полезный совет

Если вы не являетесь разработчиком сайта, изменить страницу вы сможете только для своего пользования.

Программы является его лицензионный код, на основе которого генерируется код активации. Делается это посредством связи через интернет-под ение или по телефону, также для некоторых разработчиков предусмотрены и другие способы активации.

На каком-либо языке программирования или языке разметки , который может быть прочтён человеком. В обобщённом смысле - любые входные данные для транслятора . Исходный код транслируется в исполняемый код целиком до запуска программы при помощи компилятора или может исполняться сразу при помощи интерпретатора .

Назначение

Исходный код либо используется для получения объектного кода, либо выполняется интерпретатором. Изменения выполняются только над исходным, с последующим повторным преобразованием в объектный.

Другое важное назначение исходного кода - в качестве описания программы. По тексту программы можно восстановить логику её поведения. Для облегчения понимания исходного кода используются комментарии . Существуют также инструментальные средства, позволяющие автоматически получать документацию по исходному коду - т. н. генераторы документации .

Кроме того, исходный код имеет много других применений. Он может использоваться как инструмент обучения; начинающим программистам бывает полезно исследовать существующий исходный код для изучения техники и методологии программирования. Он также используется как инструмент общения между опытными программистами благодаря своей лаконичной и недвусмысленной природе. Совместное использование кода разработчиками часто упоминается как фактор, способствующий улучшению опыта программистов.

Программисты часто переносят исходный код (в виде модулей , в имеющемся виде или с адаптацией) из одного проекта в другой, что носит название повторного использования кода .

Исходный код - важнейший компонент для процесса портирования программного обеспечения на другие платформы. Без исходного кода какой-либо части ПО портирование либо слишком сложно, либо вообще невозможно.

Организация

Исходный код некоторой части ПО (модуля, компонента) может состоять из одного или нескольких файлов . Код программы не обязательно пишется только на одном языке программирования. Например, часто программы, написанные на языке Си , из соображений оптимизации содержат вставки кода на языке ассемблера . Также возможны ситуации, когда некоторые компоненты или части программы пишутся на различных языках, с последующей сборкой в единый исполняемый модуль при помощи технологии, известной как компоновка библиотек (library linking ).

Сложное программное обеспечение при сборке требует использования десятков или даже сотен файлов с исходным кодом. В таких случаях для упрощения сборки обычно используются файлы проектов, содержащие описание зависимостей между файлами с исходным кодом и описывающие процесс сборки. Эти файлы также могут содержать параметры для компилятора и среды проектирования. Для разных сред проектирования могут применяться разные файлы проекта, причём в некоторых средах эти файлы могут быть в текстовом формате, пригодном для непосредственного редактирования программистом с помощью универсальных текстовых редакторов, в других средах поддерживаются специальные форматы, а создание и изменения файлов производится с помощью специальных инструментальных программ. Файлы проектов обычно включают в понятие «исходный код». Часто под исходным кодом подразумевают и файлы ресурсов, содержащие различные данные, например графические изображения, нужные для сборки программы.

Для облегчения работы с исходным кодом и для совместной работы над кодом командой программистов используются системы управления версиями .

Качество

В отличие от человека, для компьютера нет «хорошо написанного» или «плохо написанного» кода. Но то, как написан код, может сильно влиять на процесс сопровождения ПО . О качестве исходного кода можно судить по следующим параметрам:

  • читаемость кода (в том числе наличие

Любая программа или онлайн-сервисы, например, Word, Microsoft Windows, WhatsApp или же браузер, которые ежедневно запускают сотни миллионов человек, так или иначе, состоят из особых инструкций. Или специального программного кода, который понятен машине, говорит, что ей делать или, наоборот, не делать. Или как правильно реагировать на действия пользователя. Что такое программный код, будет разобрано в этой статье.

Описание

Программный код программы — это текст, выполненный на особом языке, понятном машине. Он может выполняться непосредственно по тексту с помощью интерпретатора или транслироваться в особый вид с помощью компилятора.

Исходный код программы может состоять из нескольких файлов. При этом все они должны быть одинакового формата. Текст программы, содержащейся в них, должен быть написан на одном и том же языке. Правда, могут встречаться и исключения. Например, в веб-разработке в файле страницы могут содержаться несколько различных языков программирования и стандартов. В зависимости от сложности проекта, могут присутствовать такие языки и технологии, как PHP, HTML, и другие.

Сложные программные комплексы при сборке могут потребовать большого количества файлов, которое может исчисляться целыми сотнями. Для совместной работы над такими большими проектами программисты очень часто используют системы контроля версий. Они позволяют одновременно работать с несколькими экземплярами исходного кода, который на определённом этапе разработки можно соединить в один общий.

Качество кода

Компьютер не способен понять, как написан код для него, плохо или хорошо. Если он будет работоспособен и не содержит ошибок, то машина запустит его в любом случае. Плохой код может усложнить задачи сопровождения программного обеспечения. Особенно актуально это для больших проектов. Обычно качественный код характеризуется несколькими параметрами:

  • Читаемость кода. Одного взгляда на него должно хватать, чтобы обобщенно понять, что реализуется участком кода.
  • Присутствие понятных и ёмких комментариев. Данный параметр очень сильно влияет на читаемость, легкость в отладке, тестирование поддержки и устранение ошибок программного кода.
  • Низкая сложность.
  • Оптимизация кода. Организовать его стоит таким образом, чтобы программа использовала как можно меньше системных ресурсов, таких как память, время процессора и пространство жёсткого диска.
  • Отсутствие мусора. То есть не используемых переменных или блоков кода, в которой никогда не заходит управление программой.

Вредоносный программный код

Помимо полезных программ, существуют такие, которые могут нанести вред системе или даже оборудованию. Как правило, пишется такой код людьми, которые заинтересованы в какой-либо выгоде от происходящего процесса. Например, программы, которые могут похищать личные данные с компьютеров пользователей. Ими могут быть номера платёжных карт, паспортные данные, или какая-либо другая конфиденциальная информация. Другие могут просто оказывать влияние на работу системы, тем самым вызывая сбои и мешая полноценной функциональности.

Джефф Вогел - программист с большим опытом - поделился несколькими советами для того, чтобы научить начинающих разработчиков правилам хорошего кода.

В частности, он предлагает всегда комментировать свой программный код. Что такое комментарий? Это понятное и краткое описание того, что происходит в данной строке кода или функции. Дело в том, что разработка определённой программы может затянуться на месяц или вообще приостановиться на некоторое время. Вернувшись к работе над проектом через пару месяцев, даже опытному программисту будет сложно разобраться в своей же программе. Но подробные комментарии смогут восстановить цепочку событий и поведение кода.

Далее он рекомендует использовать в программе глобальные переменные как можно чаще. Это объясняется тем, что при изменении программного кода, придётся корректировать значение переменной всего лишь в одном месте. При этом все использующие значение функции или процедуры сразу об этом узнают и будут производить операции уже с новыми данными.

Имена переменных и выявление ошибок

Правильное название переменных также поможет значительно сократить время на изучение исходного кода программы, даже если код написан собственными руками. То есть хорошим кодом считается такой текст, где переменные и функции имеют имена, по которым можно понять, что именно они делают или хранят. При этом нужно стараться не использовать длинных имён переменных.

Очень важно уделять большое внимание своевременному устранению ошибок. Что такое программный код, который исполняется идеально? Это код, в котором нет ошибок. То есть любое ветвление цикла или изменение переменной, или вовсе какие-либо непредвиденные действия пользователя, всегда приведут к ожидаемому результату. Это достигается за счёт тестирования готового по несколько раз.

Выявление ошибок программного кода, а точнее, их предугадывание возможно на этапе проектирования программы. Присутствие в коде различных проверок условий и возможных исключений, поможет вести управление программой по определённому курсу.

Оптимизация имеет колоссальное значение для написания работоспособной программы, которая будет экономно использовать ресурсы компьютера и при этом не допускать ошибок выполнения программного кода. Что такое оптимизированная программа? Это продукт, который способен выполнять весь заявленный функционал, ведя себя при этом "тихо" и экономно.

Практически всегда оптимизации для стабильной работы программы можно добиться только в результате проведения нескольких тестов на разных платформах и в различных условиях. Если программа начинает вести себя непредсказуемо, нужно определить, что стало причиной и по возможности устранить или перехватить процесс.

Заключение

Что такое программный код? Говоря простым языком, это набор инструкций и понятий для компьютера. Он содержит текст, который компилятор или интерпретатор могут превратить в понятный машине язык. То есть, по сути, программный код - это посредник между человеком и компьютером, который упрощает их взаимоотношения.

Который может быть прочтён человеком. В обобщённом смысле - любые входные данные для транслятора . Исходный код транслируется в исполняемый код целиком до запуска программы при помощи компилятора или может исполняться сразу при помощи интерпретатора .

Энциклопедичный YouTube

    1 / 3

    Science show. Выпуск 33. Научные киноляпы 2

    Основы программирования: Исходный код

    Ответы на вопросы 1: Исходный код

    Субтитры

Назначение

Исходный код либо используется для получения объектного кода, либо выполняется интерпретатором. Изменения никогда не выполняются над объектным кодом, только над исходным, с последующим повторным преобразованием в объектный.

Другое важное назначение исходного кода - в качестве описания программы. По тексту программы можно восстановить логику её поведения. Для облегчения понимания исходного кода используются комментарии . Существуют также инструментальные средства, позволяющие автоматически получать документацию по исходному коду - т. н. генераторы документации .

Кроме того, исходный код имеет много других применений. Он может использоваться как инструмент обучения; начинающим программистам бывает полезно исследовать существующий исходный код для изучения техники и методологии программирования. Он также используется как инструмент общения между опытными программистами благодаря своей лаконичной и недвусмысленной природе. Совместное использование кода разработчиками часто упоминается как фактор, способствующий улучшению опыта программистов.

Программисты часто переносят исходный код (в виде модулей , в имеющемся виде или с адаптацией) из одного проекта в другой, что носит название повторного использования кода .

Исходный код - важнейший компонент для процесса портирования программного обеспечения на другие платформы. Без исходного кода какой-либо части ПО портирование либо слишком сложно, либо вообще невозможно.

Организация

Исходный код некоторой части ПО (модуля, компонента) может состоять из одного или нескольких файлов . Код программы не обязательно пишется только на одном языке программирования. Например, часто программы, написанные на языке Си , из соображений оптимизации содержат вставки кода на языке ассемблера . Также возможны ситуации, когда некоторые компоненты или части программы пишутся на различных языках, с последующей сборкой в единый исполняемый модуль при помощи технологии, известной как компоновка библиотек (library linking ).

Сложное программное обеспечение при сборке требует использования десятков или даже сотен файлов с исходным кодом. В таких случаях для упрощения сборки обычно используются файлы проектов, содержащие описание зависимостей между файлами с исходным кодом и описывающие процесс сборки. Эти файлы также могут содержать параметры для компилятора и среды проектирования. Для разных сред проектирования могут применяться разные файлы проекта, причём в некоторых средах эти файлы могут быть в текстовом формате, пригодном для непосредственного редактирования программистом с помощью универсальных текстовых редакторов, в других средах поддерживаются специальные форматы, а создание и изменения файлов производится с помощью специальных инструментальных программ. Файлы проектов обычно включают в понятие «исходный код». Часто под исходным кодом подразумевают и файлы ресурсов, содержащие различные данные, например графические изображения, нужные для сборки программы.

Для облегчения работы с исходным кодом и для совместной работы над кодом командой программистов используются системы управления версиями .

Качество

В отличие от человека, для компьютера нет «хорошо написанного» или «плохо написанного» кода. Но то, как написан код, может сильно влиять на процесс сопровождения ПО . О качестве исходного кода можно судить по следующим параметрам:

  • читаемость кода (в том числе наличие

(Руководство разработчика по микроконтроллерам семейства HCS08)

В Примере 12.1 мы рассмотрим программный код, который позволяет записать и стереть собственные данные во флэш-памяти. Такие действия бывают необходимы, если пользователь какого-либо устройства производит дополнительную настройку этого устройства и желает, чтобы выбранная конфигурация сохранилась после отключения питания.

Ранее нами было отмечено, что МК семейства HCS08 не позволяют выполнять операции стирания и программирования флэш-памяти, исполняя программу управления этими режимами также из флэш-памяти. Обязательно следует сначала переписать программный код, отвечающий за операции стирания и программирования, в оперативную память, а затем запустить этот код на исполнение. В процессе стирания и программирования к модулю флэш-памяти будет приложено повышенное напряжение. Однако это не приведет к срыву работы программы, поскольку в данный момент времени она будет исполняться из ОЗУ.

Компания NXP разработала набор утилит на ассемблере, который упрощает создание собственного программного кода для программирования флэш-памяти под управлением рабочей программы устройства. Эти утилиты размещены в файле doonstack.asm . Этот файл следует включить в проект, как показано на Рис. 12.3 .

Рис. 12.3. Окно проекта с включенным файлом doonstack.asm .

Содержимое файла doonstack.asm представлено ниже. Приведен оригинальный текст используемого программного кода, поэтому комментарии переводу не подлежат.


;* This stationery is meant to serve as the framework for a *
;* user application. For a more comprehensive program that *
;* demonstrates the more advanced functionality of this *
;* processor, please see the demonstration applications *
;* located in the examples subdirectory of the *
;* Metrowerks Codewarrior for the HC08 Program directory *
;**************************************************************
; export symbols
XDEF DoOnStack
XDEF FlashErase
XDEF FlashProg
; we use export "Entry" as symbol. This allows us to
; reference "Entry" either in the linker .prm file
; or from C/C++ later on

; include derivative specific macros
Include "MC9S08GB60.inc"

Две следующие строки следует раскомментировать и назначить желаемые значения.

;mPageErase equ $40
;mByteProg equ $20
mFACCERR equ $10
mFPVIOL equ $20
mFCBEF equ $80
; variable/data section
MY_ZEROPAGE: SECTION SHORT
; Insert here your data definition. For demonstration, temp_byte is used.
; temp_byte ds.b 1
; code section
MyCode: SECTION
;**************************************************************
; this assembly routine is called the C/C++ application
DoOnStack: pshx
pshh ;save pointer to flash
psha ;save command on stack
ldhx #SpSubEnd ;point at last byte to move to stack;
SpMoveLoop: lda ,x ;read from flash
psha ;move onto stack
aix #-1 ;next byte to move
cphx #SpSub-1 ;past end?
bne SpMoveLoop ;loop till whole sub on stack
tsx ;point to sub on stack
tpa ;move CCR to A for testing
and #$08 ;check the I mask
bne I_set ;skip if I already set
sei ;block interrupts while FLASH busy
lda SpSubSize+6,sp ;preload data for command
cli ;ok to clear I mask now
bra I_cont ;continue to stack de-allocation
I_set: lda SpSubSize+6,sp ;preload data for command
jsr ,x ;execute the sub on the stack
I_cont: ais #SpSubSize+3 ;deallocate sub body + H:X + command
;H:X flash pointer OK from SpSub
lsla ;A=00 & Z=1 unless PVIOL or ACCERR
rts ;to flash where DoOnStack was called
;**************************************************************
SpSub: ldhx LOW(SpSubSize+4),sp ;get flash address from stack
sta 0,x ;write to flash; latch addr and data
lda SpSubSize+3,sp ;get flash command
sta FCMD ;write the flash command
lda #mFCBEF ;mask to initiate command
sta FSTAT ; register command
nop ;[p] want min 4~ from w cycle to r
ChkDone: lda FSTAT ; so FCCF is valid
lsla ;FCCF now in MSB
bpl ChkDone ;loop if FCCF = 0
SpSubEnd: rts ;back into DoOnStack in flash
SpSubSize: equ (*-SpSub)
;**************************************************************
FlashErase: psha ;adjust sp for DoOnStack entry

lda #mPageErase ;mask pattern for page erase command
bsr DoOnStack ;finish command from stack-based sub
rts
;**************************************************************
FlashProg: psha ;temporarily save entry data
lda #(mFPVIOL+mFACCERR) ;mask
sta FSTAT ;abort any command and clear errors
lda #mByteProg ;mask pattern for byte prog command
bsr DoOnStack ;execute prog code from stack RAM
ais #1 ;deallocate data location from stack
rts
;**************************************************************

Также в тексте программного кода на С необходимо директивой #include подключить файл doonstack.h , текст которого представлен ниже.


/* */
/* Project Name: doonstack.h */
/* Last modified: 04/11/2004 */
/* By: r60817 */
/* */
/* */
/**********************************************************************/
/* */
/* Description: MC9S08GB60_FLASH_DOONSTACK - demo */
/* */
/* */
/* Documentation: MC9S08GB60/D Rev. 2.2 */
/* HCS08RMv1/D Rev. 1(4.8FLASH Application Examples) */
/* */
/* This software is classified as Engineering Sample Software. */
/* */
/**********************************************************************/
/* */
/* Services performed by FREESCALE in this matter are performed AS IS */
/* and without any warranty. CUSTOMER retains the final decision */
/* relative to the total design and functionality of the end product. */
/* FREESCALE neither guarantees nor will be held liable by CUSTOMER */
/* for the success of this project. FREESCALE DISCLAIMS ALL */
/* WARRANTIES, EXPRESSED, IMPLIED OR STATUTORY INCLUDING, BUT NOT */
/* LIMITED TO, IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A */
/* PARTICULAR PURPOSE ON ANY HARDWARE, SOFTWARE ORE ADVISE SUPPLIED */
/* TO THE PROJECT BY FREESCALE, AND OR NAY PRODUCT RESULTING FROM */
/* FREESCALE SERVICES . IN NO EVENT SHALL FREESCALE BE LIABLE FOR */
/* INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT. */
/* */
/* CUSTOMER agrees to hold FREESCALE harmless against any and all */
/* claims demands or actions by anyone on account of any damage, or */
/* injury, whether commercial, contractual, or tortuous, rising */
/* directly or indirectly as a result of the advise or assistance */
/* supplied CUSTOMER in connection with product, services or goods */
/* supplied under this Agreement. */
/* */
/**********************************************************************/
/*
- this file API between main.c and doonstack.asm
*/
#ifndef _doonstack
#define _doonstack
#ifdef __cplusplus
extern "C" { /* our assembly functions have C calling convention */
#endif
void DoOnStack(void); /* prototype for DoOnStack routine */
void FlashErase(unsigned char *); /* prototype for FlashErase routine */
/* Page Erase command */
void FlashProg(unsigned char *, unsigned char); /* prototype for FlashProg routine */
/* Byte Program command */
#ifdef __cplusplus
}
#endif

#endif /* _doonstack */
/**********************************************************************/

В нашем примере для записи энергонезависимых данных резервируется блок в 512 байт. Такой размер блока выбран потому, что это минимально разрешенный для стирания объем ячеек флэш-памяти в микроконтроллере MC9S08QG8. Выбранный блок будет располагаться в начале адресного пространства резидентной флэш-памяти МК: от 0xE000 до 0xE1FF. Программный код будет начинаться с адреса 0xE200 и может занимать адресное пространство вплоть до 0xFFFF.

Для того чтобы реализовать задуманное размещение кодов данных и программы, следует изменить установки компоновщика в файле project.prm .

В стандартном проекте была запись:


ROM = READ_ONLY 0xE000 TO 0xFFAD;

Ее следует заменить:

SEGMENTS /* Here all RAM/ROM areas of the device are listed */
ROM = READ_ONLY 0xE200 TO 0xFFAD;

В нашем примере также использован режим защиты от записи области программного кода, т.е. адресного пространства от 0xF200 до 0xFFFF. На Рис. 12. 4 показан процесс формирования кода для регистра FPROT, который обеспечивает защиту адресного пространства 0xF200...0xFFFF от случайного стирания/записи. Семь старших битов последнего адреса 0xF1FF незащищенного адресного пространства должны быть записаны в регистр FPROT.

Адрес A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0xE1FF 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1
FPROT FPS7 FPS6 FPS5 FPS4 FPS3 FPS2 FPS1 FPDIS
0xE0 1 1 1 0 0 0 0 0

Рис. 12.4. Формирование записи кода зашиты для регистра FPROT.

Пример 12.1. Операции с энергонезависимыми данными во флэш-памяти

// Демонстрационная плата DEMO9S08QG8
// стирание/запись/чтение резидентной флэш-памяти
#include /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
#include "hcs08.h" /* Это наш файл с объявлениями! */
#include "doonstack.h"
#define BUSCLK 8000000
#define vFCDIV (BUSCLK/200000-1)
char fdata, operation;
unsigned int faddress;
// Назначается область защищенных от записи адресов: от 0xE200 до 0xFFFF
const byte NVPROT_INIT @0x0000FFBD = 0xE0;
// Инициализация МК
void mcu_init(void)
{
SOPT1 = bBKGDPE; // Разрешение функции линии отладки BKGD
ICSSC = NV_FTRIM; // Записать значение подстройки FTRIM
ICSTRM = NV_ICSTRM; // Записать значение подстройки TRIM
ICSC2 = 0; // ICSOUT = DCOOUT / 1
// BUSCLK = 8 МГц
FCDIV = vFCDIV; // Записать значение кода делителя для частоты FCLK
// (FCLK = 200 кГц)
}
#pragma inline
// Функция чтения байта из ячейки памяти с заданным адресом
char flash_read(unsigned int address)
{
unsigned char *pointer;
pointer = (char*) address;
return (*pointer);
}
// Функция записи байта в ячейку памяти с заданным адресом
char flash_write(unsigned int address, unsigned char data)
{
unsigned char *pointer;
pointer = (char*) address;
FlashProg(pointer,data); // Вызов функции программирования флэш-памяти
if (FSTAT_FACCERR) data=1; else data=0;
if (FSTAT_FPVIOL) data|=2;
return(data);
}
// Функция стирания заданного блока в области флэш-памяти
unsigned char flash_sector_erase(unsigned int address)
{
unsigned char *pointer, res;
pointer = (char*) address;
FlashErase(pointer);
if (FSTAT_FACCERR) res=1; else res=0;
if (FSTAT_FPVIOL) res|=2;
return(res);
}
void main(void)
{
mcu_init();
fdata = 0;
faddress = 0xE000;
operation = 0;
while (1)
{
switch (operation)
{
case 1: // Стирание блока
fdata = flash_sector_erase(faddress);
operation = 0;
break;
case 2: // Запись байта
fdata = flash_write(faddress,fdata);
operation = 0;
break;
case 3: // Чтение байта
fdata = flash_read(faddress);
operation = 0;
break;
}
}
}

Рассмотрим методику тестирования программного кода Примера 12.1. Для этого в окно отладчика Data добавим три переменные: faddress , fdata , operation . Также установим для окна режим периодического обновления, например, через 200 мс.

Перед запуском на исполнение программного кода запишите в переменную faddress адрес для записи, а в переменную fdata — байт данных для записи. Далее в переменную operation запишите код 0x02. После запуска программного кода примера начнется запись байта данных в выбранную ячейку флэш-памяти. Обратите внимание, что выбранная ячейка должна находиться в стертом состоянии, т.е. в ней должен быть код 0xFF.

Для того чтобы стереть блок памяти 0xE00...0xE1FF, запишите в faddress любой адрес из указанного диапазона и установите переменную operation в 1. Далее запустите код снова на исполнение.

Прочитать данные из флэш-памяти тоже просто. Для этого запишите в переменную faddress код адреса, в переменную operation — код 0x03. Содержимое выбранной ячейки флэш-памяти отобразится в переменной fdata после исполнения программного кода.

Обратите внимание, что функции flash_write() и flash_sector_erase() возвращают переменную типа chare с кодом ошибки при выполнении действия: 0 — не было ошибки, 0x02 — была ошибка доступа, 0x04 — была попытка стирания/записи защищенного адресного пространства. Обе упомянутые функции требуют для своего исполнения около 35 байт стековой памяти. Если реальная область стека окажется меньше, то произойдет фатальная ошибка. Восстановить работоспособность программы можно будет только сбросом МК.

Для того чтобы посмотреть в отладчике изменения флэш-памяти, необходимо внести некоторые изменения в конфигурацию отладчика. Следуя установкам по умолчанию, отладчик считывает область флэш-памяти МК только один раз после запуска сессии отладки. Для изменения конфигурации выберите в главном меню отладчика опцию MultilinkCyclonPro > Debug Memory Map . Откроется окно, показанное на Рис. 12.5 , а . Выберите в этом окне memory block 3 и нажмите кнопку Modify/Details . В новом окне, показанном на Рис. 12.5 , б , выберите отмеченную опцию. Она позволит отладчику периодически обновлять окно памяти.

Рис. 12.5. Изменение конфигурации отладчика для периодического обновления содержимого окна памяти.