<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title><![CDATA[ 2024年6月2日の投稿［1件］ - 電装工芸日記 - 舞台照明機器の製作とか - ]]></title>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi</link>
	<description><![CDATA[ 今年は開発案件を進めたい ]]></description>
	<language>ja</language>
	<copyright>Copyright 2026</copyright>
	<lastBuildDate>Fri, 24 Apr 2026 07:46:09 +0900</lastBuildDate>
	<generator><![CDATA[ <!-- てがろぐ Version: -->Powered by <a href="https://www.nishishi.com/cgi/tegalog/" target="_top">てがろぐ</a> Ver 3.4.0 ]]></generator>
	<!-- BEGIN ENTRIES -->
	<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　今更ですが、PIC の開発環境を MPLAB-X に完全移… ]]></title>
	<description><![CDATA[ 　今更ですが、PIC の開発環境を MPLAB-X に完全移行しています。このところ PIC のソースコードを書いていなかったので取り急ぎの必要がなかったのですが、DMX のスプリッターを増産することになったのでこの際といったところです。<br />　問題点はアセンブラが MPASM から XC8 になったためソースコードの記述が違うことです。<br />　以前にも少し書いたのですが、整理したので改めて揚げてみます。<br /><br /><small class="decorationS"><span class="decorationF deco-code">１）ラベル文字の最後に &apos; &#58; &apos; をつける<br />例：<br />--- MPASM ---<br />LOOP<br />　NOP<br />　GOTO　LOOP<br />--- xc8_asm ---<br />LOOP&#58;<br />　NOP<br />　GOTO　LOOP<br /><br />２）0x以外の数値識別子が異なる<br />例：<br />--- MPASM ---<br />2進数　 B&apos;01001111&apos;<br />8進数　 O&apos;72&apos;<br />10進数　D&apos;34&apos; または .34<br />16進数　H&apos;4F&apos; または 0x4F<br />--- xc8_asm ---<br />2進数　 01001111B<br />8進数　 72Q<br />10進数　34<br />16進数　04FH または 0x4F<br /><br />３）cblock は使えないので equ を使用する<br /><br />４）org の代わりに、psect を使用する<br />　コードの開始アドレスを指示するのだが、二か所に記述する。これまで ORG を書いた本文の位置と Linker に記述。<br />例１：<br />　インデックスの名前を Code_Start としアドレスを 0x0000 とする場合。<br />(1) 開始アドレスを与えたいコードの直上に次を記述する。ORG の代わりに用いるものである。<br />PSECT Code_Start,class=CODE,delta=2<br />(2) &lt;project properties ダイアログ&gt; &lt;pic-as Linker&gt; &lt;Custom linker options&gt; に以下を記述する。<br />-pStart_Code=0h<br /><br />例２：<br />　インデックスの名前を Int_Vec としアドレスを 0x0004 とする場合。<br />(1) 開始アドレスを与えたいコードの直上に次を記述する。ORG の代わりに用いるものである。<br />PSECT Int_Vec,class=CODE,delta=2<br />(2) &lt;project properties ダイアログ&gt; &lt;pic-as Linker&gt; &lt;Custom linker options&gt; に以下を記述する。<br />-pInt_Vec=4h<br /><br />例３：<br />　インデックスの名前を Tables としアドレスを 0x0400 とする場合。<br />(1) 開始アドレスを与えたいコードの直上に次を記述する。ORG の代わりに用いるものである。<br />PSECT Tables,class=CODE,delta=2<br />(2) &lt;project properties ダイアログ&gt; &lt;pic-as Linker&gt; &lt;Custom linker options&gt; に以下を記述する。<br />-pTables=400h<br /><br />５）コンフィグ指定は、xc8 の形式とする<br />MPLABX のメニュー &#91;Production&#93; &#91;Set Configuration Bits&#93; を用いると各項目の設定から以下のようなコードの生成まで出来るので本文の冒頭にコピペする。<br />例：<br />; CONFIG1<br />　CONFIG　FOSC = EXTRCCLK　　　 ; Oscillator Selection bits (EXTRC oscillator; CLKO function on RA6/OSC2/CLKO)<br />　CONFIG　WDTE = ON　　　　　　 ; Watchdog Timer Enable bit (WDT enabled)<br />　CONFIG　PWRTE = OFF　　　　　 ; Power-up Timer Enable bit (PWRT disabled)<br />　CONFIG　MCLRE = ON　　　　　　; RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is MCLR)<br />　CONFIG　BOREN = ON　　　　　　; Brown-out Reset Enable bit (BOR enabled)<br />　CONFIG　LVP = ON　　　　　　　; Low-Voltage Programming Enable bit (RB3/PGM pin has PGM function, Low-Voltage Programming enabled)<br />　CONFIG　CPD = OFF　　　　　　 ; Data EE Memory Code Protection bit (Code protection off)<br />　CONFIG　WRT = OFF　　　　　　 ; Flash Program Memory Write Enable bits (Write protection off)<br />　CONFIG　CCPMX = RB0　　　　　 ; CCP1 Pin Selection bit (CCP1 function on RB0)<br />　CONFIG　CP = OFF　　　　　　　; Flash Program Memory Code Protection bit (Code protection off)<br />; CONFIG2<br />　CONFIG　FCMEN = ON　　　　　　; Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor enabled)<br />　CONFIG　IESO = ON　　　　　　 ; Internal External Switchover bit (Internal External Switchover mode enabled)<br /><br />６）オペランドでの SFR の表記に注意する<br />　詳細が長すぎるのでここでは割愛</span></small><br /><br />追記<br />　不思議な現象が発生。<br />　MPLABXv5.5ではアセンプルが通るのにv6.2ではエラーが出て通らないプロジェクトがある。アセンブラはどちらも同じバージョンのXC8。<br />　エラーメッセージを見ると書いたソースコードではなく内部的なツールにエラーが起きているとある。<br />　さて、とこから詰めていきましょうか。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%49%43" class="taglink" title="PIC">#PIC</a> -- Posted by 電装工芸 〔2662文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=885</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=885</guid>
	<category>tegalog</category>
	<pubDate>Sun, 02 Jun 2024 10:12:03 +0900</pubDate>
</item>

	<!-- END ENTRIES -->
</channel>
</rss>

