Category

MeCrisp-Stellaris

와 함께 태양 전지 테스터를 제작 한 마지막 두 기사에서는 멋지지만 이상한 방식에 대해 맹렬히 말하고 기본 시스템을 설정하고 일부 LED를 깜박였습니다. 그리고 멀티 태스커에서 당신을 지적했지만, 우리는 아직 실제적인 사용하지 않았습니다. 이런 시스템을 시작하는 것은 전투의 절반에 대해 약간의 시스템을 시작합니다. 마이크로 컨트롤러 내부에서 작동하는 것은 마이크로 컨트롤러의 컴파일과 워크 플로우, 기술 문제 및이 유익한 자원이 반드시 분명하지는 않습니다. 또한 Mecrisp-Stellaris의 훌륭한 기능이 있으며 잠시 동안 시스템을 해킹 당할 때까지 알지 못할 수도 있습니다.

이상적으로, 당신은 그들의 일을하는 사람의 휴대를 엿보고 그들이 일하는 방식의 일부를 볼 것입니다. 그것이이 작품의 목표입니다. 이미 Mecrisp-Stellaris-Plus-emmello 버전에서 이미 번쩍이 었으면 따라야 할 준비가되었습니다. 그렇지 않은 경우, 돌아가서 숙제를 진짜 빨리하십시오. 당신이 끝나면 여전히 여기있을 것입니다. 이 게시물이 많이있는 것은 Mecrisp-Stellaris 맛이 매우 확실하지만, 톤의 팔 칩의 톤에서 튀어 나오는 것은 나쁜 곳이 아닙니다.

순응 처리

앞으로 익숙해 질 필요가있는 첫 번째 일은 스택입니다. 한 번에 그들의 마음 속에 5 명의 것들을 지키려고하는 사람들에 대한 오래된 밤은 무엇입니까? 앞으로 그걸 시험에 두어야한다.

마지막으로 .s ( “인쇄 스택”) 명령을 간략하게 지적했습니다. Hackaday Edition에서는 기존의 Mecrisp. 조금 덜 자세한 자세를 취하고 내 눈으로 훨씬 더 읽을 수 있습니다. 당신이 당신 자신을 히는 것을 발견하면 많이, 당신은 또한 (일시적으로) “OK”를 덮어 쓰는 함수를 작성했습니다. Enter 키를 누르면 스택 인쇄물을 추가하여 프롬프트하십시오. type print.stack을 입력하고 그것이 어떻게 작동하는지 보려면 훨씬 더 많은 시간을 입력하십시오. 리셋 버튼을 치거나 재설정을 입력하면 RAM의 모든 것을 닦아냅니다. 스택 인쇄 프롬프트가 포함되어 있으므로 깨끗한 슬레이트로 돌아갑니다.

이제 스택 운영자로 놀기 좋은 시간 일 것입니다. Mecrisp 용어집을 읽었습니까? 거기에 스택 저글링 작업 목록을 확인하십시오. 인쇄를 켜고 모두가 의미가있을 때까지 놀고 놀아 라.

아직 단어를 실행 했습니까? 시스템 자체를 디버깅하지 않는 한, 라이브 메모리 위치와 몇 가지 추가 정보와 함께 알고있는 모든 단어의 연결된 목록을 밝힙니다. 함수 이름 : 목록을 인쇄하는 MECRISP에서 추가 비표준 단어가 있습니다. 지금 그 샷을 줘. 아직 몇 마디를 정의하지 않았다면 그렇게하십시오.

: hw. “Hello, World!” Cr;
손에 좋은 것이 좋은 사람입니다.

메모리에있는 레이어

MeCrisp-Stellaris의 메모리는 RAM 및 Flash의 두 개의 총 위치로 나뉩니다. “- mecrisp-stellaris core -“마크가 RAM에 있고 재설정 또는 전원을 끄는 경우에 제공되는 모든 단어가 제공됩니다. 새 RAM 기능이 목록 앞에 추가됩니다.

“- MECRISP-Stellaris Core -“마크가 Flash에서 기능이 올 것입니다. Flash의 초기 부분에서 “- Flash Dictionary -“는 기존의 MecRISP Fister Core입니다. 거기에서 “<>“는 일부 디버깅 기능과 멀티 태스킹을 포함하여 일반적으로 유용한 Mecrisp 분포에서 가져온 단어입니다. 선행 “<>“는 많은 GPIO 정의를 포함하여 embello 라이브러리의 기여도이며,이 게시물 시리즈에 대해서는 “<>“이전에 “<>“가 추가되었습니다.

분명하지 않은 것은이 모든 마커가 그들을 둘러싼 브래킷이있는 모든 마커는 초대형입니다. 이를 통해 메모리 위치가 발생할 때까지 플래시를 제거 할 수 있습니다. 따라서 추가 기능을 Flash에 추가하고 Hackaday Edition 기본 상태로 되돌리려면 << Hackaday-extras >>를 입력 할 수 있습니다. 추가 기능이 지워지며 칩 재설정이 재설정됩니다. (이는 RAM이 왔는지 잃어 버리십시오!) 명령 eraseflash 명령은 “- 플래시 사전 -“마커로 돌아갑니다.

덮어 쓰기 역사

같은 이름으로 두 번 단어를 정의하면 사전에 두 개의 버전의 단어가 있습니다. 단어가 호출되거나 컴파일 될 때, 인터프리터는 RAM의 상단에서 메모리를 통해 표시 한 다음 플래시의 끝에서 처음까지 다시 보입니다. RAM에서 동일한 이름의 단어는 플래시에 있기 전에 호출됩니다. 특히 이상한 것은 실시간으로 컴파일되기 때문에 호출 단어가 정의 된 시간에 상단에있는 단어가있는 단어가 상단에있는 단어입니다. 얽힌 된 역사를 만드는 것은 미친 짓는 확실한 방법입니다.

: foo. “foo!” …에
: Bar foo. “바!” …에
바 Foo! 술집! 좋아요.
: foo. “bizzle!” …에 재정의하십시오. 좋아요.
foo bizzle! 좋아요.
바 Foo! 술집! 좋아요.

다른 한편으로는 이러한 다양한 메모리 기능을 활용하는 좋은 방법이 있습니다. RAM은 모든 재설정에서 지워지고 깨끗한 슬레이트를 제공하지만 모퉁이를 사용하면 플래시가 불변이 아닙니다. 물론, 당신이 지우는 데 필요한 플래시에서 더 깊은 곳,그 중 일부가 유용하다고 가정하면 나중에 재정의 해야하는 훨씬 더 많은 단어가 있습니다. 이것은 개발에 적힌 기술을 제시하고, 가장 많은 “핵심”단어가 깜박임에서 가장 안쪽에 있습니다. 그것은 또한 단어를 정의 할 필요가 있기 때문에 자연 스럽기 때문에 기본 사항을 먼저 정의하는 것은 어쨌든 의미가 있습니다.

CompileToFlash를 호출하여 CompileToram을 호출하여 Flash를 호출하여 RAM (기본값)을 RAM (기본값)으로 컴파일 할 수 있습니다. RAM에서 단어를 작성하십시오. 원하는만큼 많이 겹쳐 쓸 수있는 무료로 느껴 지지만 호출력을 손상시키지 않도록 업스트림을 변경 한 후에는 부양 가족을 다시 정의해야한다는 것을 기억하십시오. 일단 개발 덩어리로 만들어 졌으면 재설정 및 삭제를 입력하십시오. 이제이 단어들을 플래시로 재정의합니다. 아래에서 응용 프로그램을 개발하면이 모든 것이 잘 어울리지 않습니다. 이미 플래시에 작성된 무언가에서 버그를 발견했을 때, Corronstones가 구조에옵니다.

마지막으로,이 계층화 된이 계층화 된 특성은 실제로 편리 할 수 ​​있습니다. 예를 들어 Flash에서 정의한 함수 init이 각 재설정에서 실행됩니다. 프로세서 속도와 시스템 틱을 설정하는 것과 같은 것들이 포함되어 있으므로 엉망으로 엉망이없는 것입니다. init을 덮어 쓸 수 있고 컴파일을 컴파일 할 때 사용할 수있는 단어를 사용하기 때문에 단순히 기능을 init : init init “로 계층화 할 수 있습니다. Howdy!” cr; 첫 번째 “init”은 새 단어의 이름이며 두 번째는 기존 init을 호출하고 모든 설정을 수행합니다. 정의의 나머지 부분은 당신의 것입니다. 다시 시작하면 모든 것이 구매에서 수행됩니다.

창조물 위안

편집기 (VIM)에 많은 코드를 작성한 다음 칩으로 보내려면 칩으로 보내십시오. 매우 구체적으로 다음은 다음을 포함하는 forth_upload.sh라는 스크립트를 썼습니다.

[[$ 1]] && 기간 = $ 1 || Term = / dev / ttyusb0
지연 = 0.2.
읽는 동안 -r f; echo “$ f”를 할 수 있습니다. echo “$ f”> $ Term; $ {지연} s; 완료

직렬 포트에 파일을 보내려면 Forth_upload.sh